在CentOS系統中,inotify是一個強大的文件系統事件監控工具,可以實時監控文件或目錄的變化。以下是一些實用的技巧:
實時監控和同步:使用inotifywait
命令可以實時監控文件或目錄的變化。例如,監控/root
目錄的創建、修改事件:
inotifywait -m -r -e create,modify /root
將inotify與rsync
結合,可以實現文件的實時同步。當檢測到變化時,自動觸發rsync
命令將變化同步到目標目錄。
安裝和配置inotify-tools:
sudo yum install inotify-tools
使用inotifywait
命令進行遞歸監控并輸出到標準輸出:
inotifywait -m -r -e create,modify /path/to/directory
使用inotifywatch
命令統計文件系統事件的次數:
inotifywatch -r -e create,modify /path/to/directory
解決inotify監視上限問題:如果直接監控根目錄時超出系統允許的監視上限,可以通過增加每個用戶允許的監視器數量來解決:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
結合rsync實現高效同步:
配置rsync
服務以實現遠程或本地同步,并通過inotify監控變化,觸發同步操作。例如:
rsync -avz /source/directory user@remotehost:/destination/directory
在監控腳本中結合inotifywait
和rsync
實現自動同步:
#!/bin/bash
inotifywait -m -r -e create,modify /path/to/source | while read file event; do
rsync -avz "$file" /destination/directory
done
監控多個事件: 如果需要同時監控多個目錄和文件,可以這樣寫:
inotifywait -m -r -e create,delete,move /path/to/directory1 /path/to/directory2 /path/to/file1 /path/to/file2
輸出到日志文件:
將inotifywait
的輸出重定向到一個日志文件中:
inotifywait -m /path/to/file -e modify,attrib,close_write,move,create,delete >> /var/log/inotify.log 2>&1 &
通過這些技巧,你可以更高效地使用inotify來監控和同步文件和目錄的變化。