以下是inotify在Debian上的典型应用案例:
文件同步监控
结合rsync
工具,监控源目录文件变化并实时同步到目标位置,适用于数据备份或多服务器数据一致性场景。
# 示例脚本:监控源目录并同步到目标目录 inotifywait -mrq -e create,modify,delete /source_dir | while read file; do rsync -avz --delete "$file" /target_dir/ done
日志实时监控与告警
监控系统或应用日志文件,检测到特定错误时触发告警(如发送邮件或记录到日志系统)。
inotifywait -m /var/log/syslog -e modify | while read; do grep "ERROR" /var/log/syslog && echo "Error detected in logs!" | mail -s "Log Alert" admin@example.com done
自动化脚本触发
监控文件创建或修改事件,自动执行备份、压缩等操作,例如备份用户上传的文件。
inotifywait -m /upload_dir -e create | while read file; do cp "$file" /backup_dir/ && tar -czf /backup_dir/backup_$(date +%F).tar.gz /backup_dir/* done
系统服务集成
Debian系统服务(如systemd
)利用inotify监控日志文件大小或修改时间,触发日志轮转或服务重启。
安全审计与入侵检测
监控敏感文件(如配置文件、密钥文件)的修改或删除操作,及时发现异常行为。
inotifywait -m /etc/ssh/ -e modify,delete | while read; do echo "Unauthorized change detected in SSH config!" | logger -t security done
工具使用:
inotifywait
(实时事件监听)inotifywatch
(事件计数与报告)libinotify
库集成到自定义程序中以上案例均基于Debian默认软件包(inotify-tools
、libinotify-dev
),可通过apt
直接安装。