inotify事件監控工具
rsync + inotify 組合的起源
inotify優缺點
優點:監控文件系統事件變化,通過同步工具實現實時數據同步
缺點:並發如果大於200個文件(10-100k),同步就會有延遲
每次都是全部推送一次,但確實是增量的,也可以只同步變化的文件,不變化的不理。
因為監控到事件后,調用rsync同步是單進程的,而sersync為多進程同步。
inotify參數
-e指定參數事件
inotify監控搭建與測試
首先查看有沒有wget命令,沒有則需要先安裝
在去/etc/yum.repos.d下備份源光盤yum文件到bak目錄
命令wget -O /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo從阿里雲下載
需要能上網才可以從網上下載
下載完成后,清空yum緩存,生成新的雲yum緩存
安裝inotify-tools軟件包,命令是inotifywait
單條件監控inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e create /backup
inotifywait是ionotify的命令工具
-mrq:-q只輸入簡短信息,-r遞歸監控整個目錄包括子目錄,-m進行不間斷持續監聽
--timefmt:指定時間輸出格式%y=年 %m=月 %d=日 %H=時 %M=分 %F=年月日
--format:指定輸出信息的格式%T=時間 %w=路徑 %f=文件名
-e create:制定監控的事件類型,監控創建create事件
多條件監控:inotifywait -mrq --format '%w%f' -e create,close_write,delete /backup
inotifywait是ionotify的命令工具
-mrq:-q只輸入簡短信息,-r遞歸監控整個目錄包括子目錄,-m進行不間斷持續監聽
--format:指定輸出信息的格式%w=路徑 %f=文件名
-e create,close_write,delete:帶創建事件,寫關閉事件,刪除事件
vim對寫關閉事件也好用,不過會先生成緩存文件
__
inotify實時監控腳本
#!/bin/bash
Path=/data
backup_Server=172.16.1.41
/usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line
do
if [ -f $line ];then rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password else cd $Path &&\
rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password
fi
done
腳本加入開機啟動
echo "/bin/sh /server/scripts/inotify.sh &" >> /etc/rc.local
一個& 代表從后台開始運行該條命令