incron

来自 ArchWiki

incron 是一个 "inotify cron" 系统。它由一个守护进程和一个表操作器组成。你可以像使用常规 cron 一样使用它。不同之处在于 inotify cron 处理文件系统事件,而不是时间段。

安装

安装 incron 软件包。

激活与自动启动

安装后,默认情况下不会启用守护进程。你可以启用 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)