rsync inotify實時同步

2021-10-02 02:43:56 字數 2957 閱讀 4888

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...