红联Linux门户
Linux帮助

Linux incron命令:当文件或目录更改时执行任务

发布时间:2016-09-03 15:16:59来源:topspeedsnail.com作者:斗大的熊猫
incron和cron命令类似。
cron的触发条件是时间,在定义好的时间执行某项任务;incron的触发条件是目录/文件,当文件或目录更改时执行某个命令,这里的更改包括创建、修改文件、权限更改等等。
 
安装incron
以Ubuntu为例,执行:
$ sudo apt-get install incron
 
使用incron
incron在设计理念上也和cron极为类似,cron使用crontab命令管理cronjob,incron使用incrontab命令。
 
查看incrontab的帮助文档:
$ man incrontab
默认下,root用户不能使用incron,如执行:
# incrontab -l
user 'root' is not allowed to use incron
man文档里有说明:
If /etc/incron.allow exists only users listed here may use incron. Otherwise if /etc/incron.deny exists only users NOT listed here may use incron. If none of these files exists everyone is allowed to use incron.
root用户要想使用incron,需要删除/etc/incron.allow文件(不安全):
# rm -f /etc/incron.allow
或者在incron.allow文件中添加root用户(建议):
# vim /etc/incron.allow
添加一行:
root
再次执行:
# incrontab -l
no table for root
 
创建incron任务:
$ incrontab -e
在添加incron任务之前,你需要知道它的语法:
$ man 5 incrontab
Linux incron命令:当文件或目录更改时执行任务
Linux incron命令:当文件或目录更改时执行任务
 
下面,以一个实际的应用做例子:
有时我们需要修改apache的配置文件,但是要使新配置生效,需要重启apache服务。这时可以使用incron监控apache的配置文件/etc/apache2/apache2.conf、/etc/apache2/sites-available/,当配置文件被修改后触发重启apache的命令。
$ incrontab -e
添加行:
/etc/apache2/apache2.conf IN_MODIFY /usr/sbin/service apache2 restart
/etc/apache2/sites-available/ IN_MODIFY /usr/sbin/service apache2 restart
列出所有定义的任务:
$ incrontab -l
删除当前用户的所有任务:
$ incrontab -r
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23858.html