如何在目录上放置触发器

如何在目录上放置触发器

我有一个脚本,用于扫描目录并对其中的文件进行一些维护。另一个进程在目录中创建文件(每天 10 - 30 个文件)。

该脚本通过每日 cron 作业调用。我需要的是在发生事件时(每次在目录中创建新文件时)触发脚本。我更喜欢这样,而不是增加 cron 作业的频率。

我该怎么做?是否有命令或程序需要安装?

在此先感谢您的帮助。

答案1

信息传递

inoticoming 是一个守护进程,它使用 Linux 的 inotify 框架监视目录,一旦将具有特定名称的文件放入该目录,就会触发操作。

例如,它可用于等待 .changes 文件上传到目录并调用 reprepro 将它们放入您的存储库。

因克龙

incron 是一个“inotify cron”系统。它的工作方式与常规 cron 类似,但由文件系统事件而不是时间事件驱动。此软件包提供了两个程序,一个名为“incrond”(类似于 crond)的守护进程和一个表操作器“incrontab”(类似于“crontab”)。

incron 使用 Linux 内核 inotify 系统调用。

与 cron 类似,每个用户都可以编辑自己的 incron 表。

答案2

还有一个小程序叫iwatch-查看手册页(本页面适用于 Ubuntu precise (12.04),它包含指向其他 Ubuntu 版本的链接)。

iwatch可以递归监视文件夹(即子文件夹)并根据文件/目录事件发送电子邮件。

答案3

另一个值得了解的实用程序是fileschanged手册页在这里),可以监视选定文件或目录的文件系统事件,例如以下命令

fileschanged -s created -t1 $PWD

stdout应该监视当前目录中的文件创建事件,并在 1 秒超时内写入创建文件的名称。

fileschanged可以递归地监视文件夹(如iwatch另一个答案中所述),与incron和不同inoticoming

答案4

截至 2023 年,我建议查看样本或者警卫,它们都可以在多个平台上运行。

相关内容