incron
incron 是一个 "inotify cron" 系统。它由一个守护进程和一个表操作器组成。你可以像使用常规 cron 一样使用它。不同之处在于 inotify cron 处理文件系统事件,而不是时间段。
安装
激活与自动启动
安装后,默认情况下不会启用守护进程。你可以启用 incrond.service
。
配置
不应直接编辑 Incrontab 文件;相反,用户应该使用 incrontab 程序来操作他们的 incrontab 文件。
使用 incrontab
要查看他们的 incrontab 文件,用户应发出以下命令
$ incrontab -l
要编辑他们的 incrontab 文件,他们应该使用
$ incrontab -e
要删除他们的 incrontab 文件,他们可以使用
$ incrontab -r
要重新加载 incrond,请使用
$ incrontab -d
要编辑另一个用户的 incrontab 文件,请发出以下命令
# incrontab -u user -e
Incrontab 格式
Incrontab 文件中的每一行都是一个表,当事件发生在特定目录或文件时,守护进程会运行该表。
Incrontab 的基本格式是
path mask command
- 路径
- incrond 将监控更改的目录或文件。
- 掩码
- incrond 将监控的文件系统事件类型。此参数可以用逗号分隔。
- 命令
- 在指定的文件系统事件发生后要运行的命令。
掩码类型
incrontab 使用掩码类型来指定要监控的文件系统事件。有关更多选项,请参阅 inotify(7)
如果文件被访问或读取,则触发命令
IN_ACCESS
如果文件的元数据发生更改(例如,时间戳、权限),则触发命令
IN_ATTRIB
如果为写入打开的文件被关闭,则触发命令
IN_CLOSE_WRITE
如果未为写入打开的文件或目录被关闭,则触发命令
IN_CLOSE_NOWRITE
如果在受监控目录中创建了文件或目录,则触发命令
IN_CREATE
如果从受监控目录中删除了文件或目录,则触发命令
IN_DELETE
如果受监控的文件或目录被删除(或移动到不同的文件系统),则触发命令
IN_DELETE_SELF
如果文件被修改,则触发命令
IN_MODIFY
如果受监控的文件或目录在文件系统内移动,则触发命令
IN_MOVE_SELF
如果文件或目录从受监控目录中移出,则触发命令
IN_MOVED_FROM
如果文件或目录移动到受监控目录中,则触发命令
IN_MOVED_TO
如果受监控的文件或目录被打开,则触发命令
IN_OPEN
自定义掩码类型
Incrond 提供了额外的自定义事件类型来修改其监控行为。
例如,要暂停监控一个事件,直到当前事件完全处理完毕,请将 loopable=true 添加到事件列表,例如
IN_CLOSE,loopable=true
启用了 loopable 事件的事件在关联的命令退出之前不会再次触发。
有关自定义掩码类型的完整列表,请参阅 incrontab(5)。