rsync+inotify 實現數據同步

背景:

 

    兩臺服務器之間實現數據同步,常用工具rsync,常見的應用爲定時增量同步,然而這種同步需要linux來觸發(常見的手段爲定時任務),這樣難免會有數據丟失的危險,並且rsync使用的是全盤or全目錄(同步目標)掃描檢測增量備份機制,這樣對小文件還行。對海量大文件來講,全部掃描既加重了服務器的負載,又耗時。


    所以本文引入另外一個非常好用的工具inotify-tools(調用inotify藉口)可以實現監控,監控對文件系統的刪除、修改、增加、移動等操作,再使用rsync有目的的將增量文件進行同步意義重大。


下面是詳細步驟:


步驟一:判斷是否支持inotify 

ls -al /proc/sys/fs/inotify/    ------判斷是否支持inotify,下面三個文件存在,則支持。
total 0
dr-xr-xr-x 0 root root 0 May 26 09:07 .
dr-xr-xr-x 0 root root 0 May 26 08:41 ..
-rw-r--r-- 1 root root 0 May 26 09:08 max_queued_events
-rw-r--r-- 1 root root 0 May 26 09:08 max_user_instances
-rw-r--r-- 1 root root 0 May 26 09:08 max_user_watches


步驟二 安裝inotify-tools工具

wget http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz     ------ 下載安裝包
tar -zxvf  inotify-tools-3.13.tar.gz                                                                      ------ 解壓
./configure --prefix=/usr/local/inotify-tools-3.13                                                        ------ 軟件配置
./configure --help                                                                                        ------ 查看配置的相關參數
echo $?                                                                                                   ------ 檢查配置是否成功(返回結果爲0,成功)
make && make install                                                                                      ------ 一切ok,編譯並安裝


步驟三 查看安裝目錄(使用tree查看目錄各個文件的樹)

 ln -s  inotify-tools-3.13  inotify-tools                                     ------創建軟連接
 ls -al inotify-tools-3.13
 total 24
 drwxr-xr-x.  6 root root 4096 May 26 09:13 .
 drwxr-xr-x. 12 root root 4096 May 26 09:13 ..
 drwxr-xr-x.  2 root root 4096 May 26 09:13 bin                               -------兩個主要命令所在                                   
 drwxr-xr-x.  3 root root 4096 May 26 09:13 include
 drwxr-xr-x.  2 root root 4096 May 26 09:13 lib
 drwxr-xr-x.  4 root root 4096 May 26 09:13 share


步驟四 命令使用方法探索

/usr/local/inotify-tools/bin/inotifywait  --help                              -------命令使用方法查詢
/usr/local/inotify-tools/bin/inotifywatch --help                              -------命令使用方法查詢

inotify-tools安裝完成後,會生成inotifywait和inotifywatch兩個指令。

inotifywait用於等待文件或文件集上的一個特定事件,它可以監控任何文件和目錄設置,並且可以遞歸地監控整個目錄樹。

inotifywatch用於收集被監控的文件系統統計數據,包括每個inotify事件發生多少次等信息。


步驟五 案例

/usr/local/inotify-tools/bin/inotifywait -mrq  -e create /opt                 -------監控opt下面是否新建目錄或者文件


結論:打開兩個終端,就可以明顯看到,當/opt/下面創建新文件的時候,就會在另外一個終端中監控到。


應用: 

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /opt \

| while read files
        
do
        
rsync -av --delete -e ssh [email protected] /opt /opt





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章