inotify是一種強大的、細粒度的、非同步的檔案系統事件監控機制,linux核心從2.6.13起,加入了inotify支援,通過inotify可以監控檔案系統中新增、刪除,修改、移動等各種細微事件
資源準備
兩台centos7.2機器
一台rsync服務端(192.168.180.234)
服務端配置
uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
# exclude = lost+found/
# dont compress = *.gz *.tgz *.zip *.z *.z *.rpm *.deb *.bz2
# [ftp]
# path = /home/ftp
# comment = ftp export area
#[nfs]
secrets file = /etc/sery.pass
read only = false #不能唯讀 要讀寫
一台rsync客戶端
客戶端 操作
其中 inotifywait 等待檔案發生變化,是inotify核心命令引數介紹inotifywatch 用於收集檔案系統的統計資料,例如發生了多少次inotify事件,某檔案被訪問了多少次等等,一般用不上
-m :表示始終監控,否則應該是監控到了一次就退出監控了
-r :遞迴監控,監控目錄中的任何檔案,包括子目錄。遞迴監控可能會超出max_user_watches的值,需要適當調整該值
@:如果是對目錄進行遞迴監控,則該選項用於排除遞迴目錄中不被監控的檔案。file是相對路徑還是絕對路徑由監控目錄是相對還是絕對來決定
-q :--quiet的意思,靜默監控,這樣就不會輸出一些無關的資訊
-e :指定監控的事件。一般監控的就 delete、create、attrib、modify、close_write
--exclude :通過模式匹配來指定不被監控的檔案,區分大小寫
--excludei :通過模式匹配來指定不被監控的檔案,不區分大小寫
--timefmt :監控到事件觸發後,輸出的時間格式,可指定可不指定該選項,一般設定為[--timefmt '%y/%m/%d %h:%m:%s']
--format :使用者自定義的輸出格式,如[--format '%w%f %e%t']
%w :產生事件的監控路徑,不一定就是發生事件的具體檔案,例如遞迴監控乙個目錄,該目錄下的某檔案產生事件,將輸出該目錄而非其內具體的檔案
%f :如果監控的是乙個目錄,則輸出產生事件的具體檔名。其他所有情況都輸出空字串
%e :產生的事件名稱
%t :以"--timefmt"定義的時間格式輸出當前時間,要求同時定義"--timefmt"
inotifywait -e 指定監控事件
access :檔案被訪問測試監控modify :檔案被寫入,內容被修改
attrib :元資料被修改。包括許可權、時間戳、擴充套件屬性等等
close_write :開啟的檔案被關閉,是為了寫檔案而開啟檔案,之後被關閉的事件
close_nowrite :read only模式下檔案被關閉,即只能是為了讀取而開啟檔案,讀取結束後關閉檔案的事件
close :是close_write和close_nowrite的結合,無論是何種方式開啟檔案,只要關閉都屬於該事件
open :檔案被開啟
moved_to :向監控目錄下移入了檔案或目錄,也可以是監控目錄內部的移動
moved_from :將監控目錄下檔案或目錄移動到其他地方,也可以是在監控目錄內部的移動
move :是moved_to和moved_from的結合
moved_self :被監控的檔案或目錄發生了移動,移動結束後將不再監控此檔案或目錄
create :在被監控的目錄中建立了檔案或目錄
delete :刪除了被監控目錄中的某檔案或目錄
delete_self :被監控的檔案或目錄被刪除,刪除之後不再監控此檔案或目錄
umount :掛載在被監控目錄上的檔案系統被umount,umount後不再監控此目錄
isdir :監控目錄相關操作
以上是監控的多個時間,可以單獨監控某一事件
指令碼書寫
結果測試
完成
rsync inotify實現資料夾實時同步
一 rsync和inotify的安裝 rsync和inotify的安裝都比較簡單,基本都是下面的三個步驟 configure prefix 指定的安裝目錄 make make install 安裝完成後,再分別配置服務端和客戶端的配置檔案。二 客戶端配置檔案rsync.conf uid root g...
配置rsync inotify實時同步
linux核心從2.6.13版本開始提供了inotify通知介面,用來監控檔案系統的各種變化情況,如檔案訪問 刪除 移動等。利用這一機制,可以非常方便地實現檔案異動告警 增量備份,並針對目錄或檔案的變化及時作出響應。使用rsync工具與inotify機制相結合,可以實現觸發式備份 實時同步 把 19...
rsync inotify實現實時同步
服務端 一 首先安裝rsync,接著編輯配置檔案,若沒有,自己手動建立也可 rsync xinetd rsync最好是3.0以上版本,演算法更優,速度更快.xinetd 監控管理rsync服務 etc rsyncd.conf uid www gid www use chroot no max con...