配置rsync+inotify實時同步

與上一篇同步做

配置rsync+inotify實時同步

配置rsync+inotify實時同步

1:調整inotify內核參數

在linux內核中,默認的inotify機制提供三個調控參數:max_queue_events、max_user_instances、max_user_watches,分別表示監控事件隊列、最多監控實例數、每個實例最多監控文件數

[root@localhost opt]# cat /proc/sys/fs/inotify/max_queued_events 
16384
[root@localhost opt]# cat /proc/sys/fs/inotify/max_user_instances 
128
[root@localhost opt]# cat /proc/sys/fs/inotify/max_user_watches 
8192

當要監控的目錄、文件數量較多或者變化比較頻繁時,建議加大這三個參數的值,例如:直接修改/etc/sysctl.conf配置文件,將管理隊列設爲32 768,實例數設爲1024,監控數設爲1048 576(建議大於監控目標的總文件數)

[root@localhost ~] vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048567
[root@localhost ~] sysctl -p
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048567

2:安裝inotify-tools

使用inotify機制還需要安裝inotify-tools,一邊提供inotifywait和inotifywatch輔助工具程序,用來監控和彙總改動情況。inotify-tools下載地址“http://inotify-tools.sourceforge.net/

[root@localhost ~] tar zxvf /abc/inotify-tools-3.14.tar.gz -C /opt/
[root@localhost ~] cd /opt/inotify-tools-3.14/
[root@localhost inotify-tools-3.14] ./configure 
[root@localhost inotify-tools-3.14] make && make install

以監控網站目錄/var/www/html爲例,可以先執行inotifywait命令,然後在另一個終端向/var/www/html目錄下添加、移動文件,跟蹤頻屏幕輸出結果。其中-e指定監控事件,-m爲持續監控,-r遞歸整個目錄,-q簡化輸出信息

修改同步源服務端的rsyncd.conf裏面的read = no重啓服務端,在客戶端執行:inotifywait -mrq -e modify,create,move,delete /var/www/html不要動它重啓個客戶端的窗口在/var/www/html底下創建,監控服務器會出現繪畫窗

配置rsync+inotify實時同步

編寫觸發腳本並執行免交互

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

cd /opt
chmod +x inotify.sh
./inotify.sh     //執行腳本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章