使用 incron 监视文件变动以及避免 incron 多次触发

此博客使用的是 incron 来监视 Dropbox 的文件变动,然后自动生成最新的页面。

incron 的基本使用

CentOS / Red Hat:

1
sodo yum install -y incron

debian:

1
sodo apt-get install incron

然后 su youruser 到想要执行脚本的用户,键入 incrontab -e

比如,我想监视 /home/www/blog 文件夹下的增删改移,并且一旦检测到就执行 runhexo.sh 的话,就输入:

1
/home/www/blog IN_MODIFY,IN_CREATE,IN_DELETE,IN_MOVE /home/www/runhexo.sh

保存退出。

之后执行 systemctl enable incrond && systemctl start incrond 开启 incron 的 deamon。

incron 的 log 默认在 /var/log/cron

然后,开启 incron 以及设置自动开启:

1
2
service incrond start
chkconfig incrond on

#incron 多次触发的避免

其实很简单,创建一个 lock file 就好,比如:

1
2
3
4
5
6
#!/bin/bash
if [ ! -f /var/lock/runhexo ]; then
touch /var/lock/runhexo
cd /home/www/blog && ls -al
rm -rf /var/lock/runhexo
fi

使用 incron 监视文件变动以及避免 incron 多次触发

https://robinxb.com/posts/2016/using-incron-and-avoid-trigger-multiple-times/

作者

薯条

发布于

2016-04-26

更新于

2024-01-15

许可协议

评论