📅  最后修改于: 2023-12-03 14:43:56.706000             🧑  作者: Mango
incron
是 cron
的一个增强版,它可以监控文件和目录,当它们发生变化时自动执行指定的命令。incron
使用 inotify
系统调用来检测文件系统的变化。incron
支持递归地监听目录和监视文件的内容变化,因此可以方便地使用在自动化脚本、日志监控、备份等场景中。
在 Debian 或 Ubuntu 上运行以下命令进行安装:
sudo apt-get install incron
在 CentOS 或 RedHat 上运行以下命令进行安装:
sudo yum install incron
监控文件或目录的变化,当发生变化时执行指定的命令:
/path/to/file IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command
解释:
/path/to/file
:要监控的文件或目录IN_CREATE,IN_DELETE,IN_MODIFY
:要监控的事件种类,多个事件使用逗号分隔IN_CREATE
:当文件或目录被创建时发送事件IN_DELETE
:当文件或目录被删除时发送事件IN_MODIFY
:当文件或目录被修改时发送事件/path/to/command
:当事件发生时要执行的命令监控文件或目录的变化,在命令中使用监控的文件或目录作为参数:
/path/to/file IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command $@/$#
解释:
$@
:参数列表,表示监控的文件或目录$#
:事件的完整路径监控目录及其子目录下的所有文件的变化:
/path/to/directory/ IN_ALL_EVENTS /path/to/command $@/$#
解释:
IN_ALL_EVENTS
:表示所有事件监控目录及其子目录下的所有文件的变化,但不监视子目录的增删修改:
/path/to/directory/ IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command $@/$#
/path/to/directory/*/* IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command $@/$#
解释:
/path/to/directory/ IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command $@/$#
:监控目录及其直接子目录的变化/path/to/directory/*/* IN_CREATE,IN_DELETE,IN_MODIFY /path/to/command $@/$#
:监控目录下的所有子目录中的文件变化触发事件时执行命令的条件可以是文件内容变化:
/path/to/file IN_MODIFY xmllint --noout $@
触发事件时执行命令的条件可以是文件权限发生变化:
/path/to/file IN_ATTRIB chmod 664 $@
触发事件时执行命令的条件可以是文件被移动或重命名:
/path/to/file IN_MOVED_TO,MORE /path/to/command $@/$#
incron
命令可以方便地监控文件和目录的变化,并执行指定的命令。使用 incron
命令可以方便地实现自动化脚本、日志监控和备份等功能。在使用 incron
命令时需要注意,避免对文件进行误操作,导致数据丢失和系统工作异常。