在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来监控和同步文件和目录的变化。