如何在目录上放置触发器


25

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

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

我怎样才能做到这一点?有要安装的命令或程序吗?

在此先感谢您的帮助。

Answers:


23

招惹

inoticoming是一个守护进程,用于监视具有Linux inotify框架的目录,并在其中放置了具有特定名称的文件后触发操作。

例如,它可以用于等待.changes文件上载到目录中,然后调用reprepro将其放入您的存储库中。

ron

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

incron使用Linux Kernel inotify系统调用。

像cron一样,每个用户都可以编辑自己的incron表。


2
你能举个例子吗?链接手册页也欢迎,我找不到一个incron,在inoticoming一个就是这里
Lekensteyn

有关incron的信息,请参见incrond,incrontab和incron.conf的联机帮助页
Florian Diesch 2011年

2
我已经按照想要查看的方式编辑了您的答案。我从软件包描述中复制了它,以后在命名程序时请如此
详尽

4

还有一个名为的小程序iwatch-参见手册页(此页面适用于Ubuntu Precision(12.04),它具有指向其他ubuntu版本的链接)。

iwatch 具有递归监视文件夹的能力(即:子文件夹也是如此),并能够响应文件/目录事件发送电子邮件。


3

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

fileschanged -s created -t1 $PWD

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.