在 CentOS 系统中,inotify 和 cron 任务可以一起使用,以便在文件或目录发生变化时自动执行某些任务
首先,确保已经安装了 inotify-tools。如果没有,请运行以下命令来安装:
sudo yum install inotify-tools
创建一个名为 inotify_cron.sh
的 shell 脚本,用于处理 inotify 事件。在这个脚本中,你可以添加需要在文件或目录发生变化时执行的命令。
例如,以下脚本会在 /path/to/your/directory
目录中的文件发生变化时,将事件信息发送到你的邮箱:
#!/bin/bash
DIRECTORY="/path/to/your/directory"
EMAIL="your-email@example.com"
inotifywait -m -r -e modify,attrib,close_write,move,create,delete --format '%w%f %e' "${DIRECTORY}" | while read FILE_EVENT
do
echo "File event: ${FILE_EVENT}" | mail -s "Inotify Alert" "${EMAIL}"
done
确保为脚本设置可执行权限:
chmod +x inotify_cron.sh
现在,你需要设置一个 cron 任务,以便定期运行 inotify_cron.sh
脚本。运行以下命令来编辑当前用户的 crontab 文件:
crontab -e
在打开的编辑器中,添加以下行以每分钟运行一次 inotify_cron.sh
脚本:
* * * * * /path/to/inotify_cron.sh
保存并关闭编辑器。现在,cron 任务将每分钟运行一次 inotify_cron.sh
脚本,并在检测到文件或目录变化时执行相应的操作。
注意:根据实际需求调整 inotifywait 参数和 cron 任务的时间间隔。