inotify:這個可以監控檔案系統中的新增,修改,刪除,移動等事件
inotify的特性需要linux核心2.6.13以上的支援
[root@test1 inotify-tools-3.13]# uname -r2.6.32-71
.el6.i686 #支援 還需要看看是否安裝了inotify
[root@test1 inotify-tools-3.13]# ll /proc/sys/fs/inotify/total
0#這個裡面的東西是inotify的介面用於限制記憶體大小
-rw-r--r-- 1 root root 0 aug 18
19:57
max_queued_events #表示呼叫init時分配到instance中排隊的event的最大數目,超出就會被丟棄
-rw-r--r-- 1 root root 0 aug 18
19:57 max_user_instances #表示乙個real id
user 可建立instance的最大數目
-rw-r--r-- 1 root root 0 aug 18
19:57 max_user_watches #表示inotify可監控的最大目錄檔案上限,如果目錄檔案過多可以把這個值調大點
光有inotify還不夠,還要安裝inotify-tools
19:50 /usr/local/bin/inotifywait #用於等待檔案或者檔案集上的特定事件
-rwxr-xr-x. 1 root root 33971 aug 18
19:50 /usr/local/bin/inotifywatch #收集監控的檔案系統統計資料,包括inotify事件發生多少次
/usr/local/bin/inotifywait
-m:始終保持事件監控狀態
-r:遞迴查詢目錄
-q:列印監控事件
-e:指定要監控的事件,常見事件有,modify,delete,create和attrib
這個還可以一次同步到多台伺服器,用多台rsync服務端作為客戶端,在另外一台伺服器上監控乙個目錄,當目錄裡面有檔案發生狀態和屬性改變事件,就會自動觸發同步到多台伺服器上
rsync_inotify.sh
#!/bin/bash#需要同步的伺服器位址
dst_host=192.168.1.20
#源檔案目錄
src_dir=/webserver/#需要同步的遠端伺服器上的模組名
dst_module=webserver
#遠端伺服器上的模組認證使用者
module_username=sheng
#rsync命令的絕對路徑
rsync_pwd=`whereis rsync | awk''
`/usr/local/bin/inotifywait -mrq --timefmt '
%d/%m/%y %h:%m'\
--format '
%t %w%f %e'\
-e modify,delete,create,attrib $src_dir \
| while read file
do$ -vzrtopg --delete --password-file=/etc/rsyncd.pass $src_dir $module_username@$dst_host::$dst_module
echo
"$ was rsyncd!
" >> /var/log/rsync_inotify.log
done
rsync inotify實現實時同步
服務端 一 首先安裝rsync,接著編輯配置檔案,若沒有,自己手動建立也可 rsync xinetd rsync最好是3.0以上版本,演算法更優,速度更快.xinetd 監控管理rsync服務 etc rsyncd.conf uid www gid www use chroot no max con...
rsync inotify實現實時同步
一 rsync基本操作 rsync常用選項 n 測試同步過程,不做實際修改 delete 刪除目標資料夾內多餘的文件 a 歸檔模式,相當於 rlptgod v 顯示詳細操作資訊 z 傳輸過程中啟用壓縮 解壓 用法 rsync 選項 本地目錄1 本地目錄2 rsync 選項 本地目錄1 本地目錄2 r...
rsync inotify實現實時單向同步
源伺服器 10.13.114.16 目標伺服器 10.13.114.17 目的 實現源伺服器10.13.114.16 home admin www 資料夾檔案實時同步到目標伺服器10.13.114.17 的 home admin www目錄下 第一步 源伺服器端安裝rsync wget o etc ...