一、服務節點安裝inotify-tools。
確保系統後以下輸出=>
[root@***x]# ll /proc/sys/fs/inotify/total 0
-rw-r--r-- 1 root root 0 aug 23 20:02 max_queued_events
-rw-r--r-- 1 root root 0 aug 23 20:02 max_user_instances
-rw-r--r-- 1 root root 0 aug 23 20:02 max_user_watches
(1)yum -y install inotify-tools.x86_64
(2)配置server端的inotify監測指令碼
<1>cat /opt/zkrsync/rsyncfile.sh
#!/bin/bashhost_pubbak=10.0.138.136
src=/data/zookeeper
dest_pubbak=zkpub
user=root
/bin/inotifywait -mrq --timefmt '%d/%m/%y %h:%m' --format '%t %w%f%e' -e close_write,delete,create,attrib $src \
| while read file
do/bin/rsync -vzrtopg --delete --progress $src $user@$host_pubbak::$dest_pubbak
echo "$ $ was rsynced" >> /tmp/rsync.log 2>&1
done
sh /opt/zkrsync/rsyncfile.sh &
<2>supervisord配置
cat /etc/supervisord.d/rsync.ini
[program:rsync]command=/opt/zkrsync/rsyncfile.sh
startsecs=3
startretries=3
stopsignal=quit
stopasgroup=true
stopwaitsecs=10
user=root
redirect_stderr=true
stdout_logfile=/data/log/rsync/running.log
stdout_logfile_maxbytes=50mb
stdout_logfile_backups=10
stderr_logfile=/data/log/rsync/error.log
stderr_logfile_maxbytes=50mb
stderr_logfile_backups=10
二、客戶端
(1)rsync配置檔案設定
cat /etc/rsyncd.confuid = root
gid = root
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[zkpub]
path = /tmp
comment = zk transaction log trans
read only = no
hosts allow = 10.0.138.152 #server端ip
hosts deny = *
(2)啟動rsync程序服務
rsync --daemon --config=/etc/rsyncd.conf -v
三、 測試
向這個目錄"/tmp/test"進行檔案的增刪改查操作,日誌樣例如下:
sending incremental file listtest/
deleting test/wuwu
sent 40 bytes received 12 bytes 104.00 bytes/sec
total size is 0 speedup is 0.00
sending incremental file list
test/
test/iiii
5 100% 0.00kb/s 0:00:00 (xfer#1, to-check=0/2)
測試ok沒有問題。
Linux 用inotify監聽檔案和目錄
日常應用中,常常會遇到以下場景,監控資料夾a,若資料夾中的b檔案發生變化,則執行c命令。linux下可以通過inotify完成該功能。自從linux kernel 2.6.13起,inotify以作為核心的一部份,同時需要glibc 2.4以上版本。1.相關函式 inotify init 建立乙個i...
inotify實時同步工具理論和實戰
inotify服務 當使用者在a伺服器上操作了資料,inotify 會抓取出來,然後通知 rsync 然後同步到 rsync 伺服器。所以 inotify 伺服器卻是 rsync 的客戶端伺服器。inotify效能比 sersync 強,inotify 可能支援幾百個,sersync 可能一百所以就...
inotify和epoll結合使用的小例子
個人能力有限,文中有不當和錯誤給您帶來的不便還請諒解。用inotify可以檢測檔案系統中檔案和目錄發生的變化,而epoll可以同時檢測多個檔案。這裡將epoll和inotify結合起來使用,測試這樣一種情況 指定相應目錄,當目錄中有檔案建立或者刪除時有相應的通知資訊並把檔案新增或者移除epoll的檢...