分享rsync+inotify即時同步實例教程
1.rsync
與傳統的cp、tar#備份方式相比, rsync具有安全性高、備份快速、支援增量備份的優點,透過rsync可以解決對即時性要求不高的資料備份需求,例如定期的備份檔案伺服器資料到遠端伺服器,對本機磁碟定期做資料鏡像等。
隨著應用系統規模不斷的擴大,對資料安全性和可靠性也提出了更高的要求,rsync在高階業務中也逐漸暴露出許多不足。首先,rsync即時同步時,需要掃描所有的檔案進行比對,進行差量傳輸。如果文件數量打到了百萬甚至千萬量級,掃描所有的文件是非常耗時的,而且正在改變的往往是其中很少一部分,這是非常低效的方式。其次,rsync不能即時監測、同步資料。雖然它可以透過linux守護程式的方式出發同步,但是兩次出發動作一定會有時間差,這樣就導致了服務端和客戶端出現不一致,無法在應用故障時完全的恢復數據。基於以上原因,rsync+inotify就出現了!
2.inotify(監控)
inotify是一種強大的、細緻的、非同步的文件系統事件監控機制。透過inotify可以監控檔案系統中的新增、刪除、修改、移動等各種細微事件,利用這個核心藉口,第三方軟體可以監控檔案系統下的各種情況變化,而inotify-tools就是就是這樣的一個第三方軟體。
一、服務端設定(只需安裝rsync)
#共享到/tmp/下:
1.新增虛擬使用者useradd rsync -s /sbin/nologin
chown -R rsync.rsync /tmp/
2.設定#rsyncd.conf設定檔
vim rsyncd.conf
#rsync_config_______________start
#
##rsyncd.conf start
##
uid = rsync(使用者)
gid = rsync(使用者)
use chroot = no(防止安全問題)
#max connections = 200(有多少個客戶端可以連接我這個備份伺服器)
#
timeout = 300(逾時,多久沒有動作就斷掉連線)
pid file = /var/run/rsyncd.pid(行程編號,將進程編號放在這個檔案裡)
lock file = /var/run/rsync.lock(相當於「鎖」的概念,上廁所鎖門的概念)
log file = /var/log/rsyncd.log(出錯了,可以查看log日誌檔案)
[tmp](模組)
path = /tmp/(路徑)
ignore errors(忽略錯誤)
#read only = false(只讀為假,可讀,可寫的意思)
list = false(不允許列表)
#hosts allow = 10.0.0.0/24(允許的主機)
hosts deny = 0.0.0.0/32(拒絕的主機)
#auth users = rsync_backup(支援虛擬使用者)
secrets file = /etc/rsync.password(使用者對應的密碼檔案)
#
#rsync_config_______________end
3.建立密碼檔案
# echo “rsync_backup:123456” >/etc/rsync.password
#凡是密碼檔全部600權限chmod 600 /etc/rsync.password
## 4 .rsync --daemon daemon模式啟動
#
5.將rsync --daemon加入/etc/rc.local
## echo “/ usr/bin/rsync --daemom” >>/etc/rc.local #二、客戶端設定
安裝rsync和inotify
1.安裝rsync(yum已安裝即可)
# 2.建立密碼認證檔案 echo “123456” >/etc/rsync.password只需要密碼
#設定權限600 chmod 600 /etc/rsync.password
#3.安裝inotify:##
cd /home/cai/tools/
wget
#
## 54 tar xf inotify-tools-3.14.tar.gz 55 ls# # 56 cd inotify-
# #
57 ./configure --prefix=/usr/local/inotify-tools-3.14
58 make &c ll
install
# 59 yum install -y gcc 60 ./configure --prefix=/usr/local/inotify-tools-3.14##
## # 61 make && make install 62 cd 62 cd 62 cd 62 cd /usr/local/inotify-tools-3.14/# 64 ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify4.腳本都是放在
/server/scripts
下
# vim /server/scripts /rsync.sh #!/bin/sh# host=192.168.76.129 src=/tmp/ des=tmp# user=rsync_backup #/usr /local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | \ while read files do /usr/bin/rsync -avz --delete $src $user@$host::$des --password-file=/etc/rsync.password echo "${files} was rsynced" >> ;/var/log/rsyncd.log 2>&1 #done exit o~
#並給予
764權限
#測試腳本:
###sh -x /server/scripts/rsync.sh #執行腳本:sh /server/scripts/rsync.sh &
#
######將###rsync.sh###腳本放入到開機啟動項目:######echo ###“/tmp/rsync.sh” >>/ etc/rc.local###### ###以上是分享rsync+inotify即時同步實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

一般來說,我們只需要同時使用耳機或音響的其中一個設備,但是有些朋友反映在win11系統中,遇到了耳機和音響一起響的問題,其實我們可以在realtek面板中將它關閉,就可以了,下面一起來看一下吧。 win11耳機和音響一起響怎麼辦1、先在桌面上找到並打開“控制面板”2、進入控制面板,在其中找到並打開“硬體和聲音”3、然後再找到一個喇叭圖標的“Realtek高清晰音訊管理器”4、選擇“揚聲器”再點擊“後面板”進入揚聲器設定。 5.打開之後我們可以看到設備類型,如果要關閉耳機就取消勾選“耳機”,如果要

當您在您的同步資料夾中發現一個或多個項目與Outlook中的錯誤訊息不符時,這可能是因為您更新或取消了會議項目。在這種情況下,您會看到一條錯誤訊息,提示您的本機資料版本與遠端副本有衝突。這種情況通常發生在Outlook桌面應用程式中。您同步的資料夾中的一個或多個項目不符。若要解決衝突,請開啟這些項目,然後重試此操作。修復同步的資料夾中的一個或多個項目不符合Outlook錯誤在Outlook桌面版中,當本機行事曆項目與伺服器副本發生衝突時,可能會遇到問題。不過,幸運的是,有一些簡單的方法可以幫助您

隨著網路技術的不斷發展,即時視訊串流已成為了網路領域的重要應用。要實現即時視訊串流播放,其中的關鍵技術包括WebSocket和Java。本文將介紹如何結合使用WebSocket和Java實現即時視訊串流播放,並提供相關的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工通訊的協議,它在Web

利用C++實現嵌入式系統的即時音視頻處理功能嵌入式系統的應用範圍越來越廣泛,尤其在音視頻處理領域的需求日益增長。面對這樣的需求,利用C++語言實現嵌入式系統的即時音視訊處理功能成為常見的選擇。本文將介紹如何使用C++語言開發嵌入式系統的即時音視訊處理功能,並給出對應的程式碼範例。為了實現即時音視訊處理功能,首先需要理解音視訊處理的基本流程。一般來說,影音

基於JavaScript建立即時聊天室隨著網路的快速發展,人們越來越注重即時通訊和即時互動體驗。而即時聊天室作為一種常見的即時通訊工具,對於個人和企業來說都非常重要。本文將介紹如何使用JavaScript建立一個簡單的即時聊天室,並提供對應的程式碼範例。我們首先需要一個前端頁面作為聊天室的UI介面。以下是一個簡單的HTML結構範例:<!DOCTYPE

基於JavaScript建立即時翻譯工具引言隨著全球化的需求日益增長,跨國交流與交流的頻繁發生,即時翻譯工具成為了一種非常重要的應用。我們可以利用JavaScript和一些現有的API來建立一個簡單但實用的即時翻譯工具。本文將會介紹如何基於JavaScript來實現這個功能,並附有程式碼範例。實作步驟步驟1:建立HTML結構首先,我們需要建立一個簡單的HTML

現場活動是跟上即將到來的訂單、體育比賽等的好方法。這種新的通知方式是在iOS16發佈時首次引入的,它旨在改進通知傳遞到iPhone的方式。任何提供即時數據的應用程式都可以利用即時活動,許多流行的用途是追蹤掛單、正在進行的比賽的分數、天氣數據、即將到來的直播等等。即時活動始終顯示在您的通知中心,甚至在待機模式下(如果您已啟用待機模式並且您的iPhone已插接)。但是,您可能希望在使用AppleTV時停用“即時活動”,以獲得不間斷的體驗。以下是您在iPhone上執行此操作的方法。如何禁用蘋果電視的實

基於JavaScript建立即時股票行情展示導言:隨著金融市場的不斷發展,即時股票行情的展示對於投資者和交易員來說變得愈發重要。在現代化交易平台中,提供一個即時股票行情展示的功能是不可或缺的。本文將介紹如何使用JavaScript和一些相關的技術來建立一個簡單的即時股票行情展示的應用。準備工作在開始之前,需要準備以下工作:一個基於HTML和CSS的網頁框架一個
