如何在目录上放置触发器
我有一个脚本扫描目录并对其中的文件进行一些维护。 另一个进程在目录中创建文件(每天10-30个文件)。
该脚本通过每日cron作业调用。 我需要的是在事件上触发脚本(每次在目录中创建一个新文件)。 我更喜欢这个,而不是增加cron工作的频率。
我怎样才能做到这一点? 是否有要安装的命令或程序?
在此先感谢您的帮助。
inoticoming
inoticoming是一个守护程序,用于监视具有Linux的inotify框架的目录,并在具有特定名称的文件放在其中时触发操作。
例如,它可用于等待.changes文件上传到目录并调用reprepro将它们放入您的存储库。
- 无意识的手册页
incron
incron是一个“inotify cron”系统。 它的工作方式与常规cron类似,但是由文件系统事件而不是时间事件驱动。 这个包提供了两个程序,一个名为“incrond”的守护进程(类似于crond)和一个表操作符“incrontab”(如“crontab”)。
incron使用Linux Kernel inotify系统调用。
像cron一样,每个用户都可以编辑自己的incron表。
- incrond的手册页
- incrontab的手册页
- icron.conf的手册页
还有一个名为iwatch
的小程序 – 请参阅手册页 (此页面适用于Ubuntu精确(12.04),它有其他ubuntu版本的链接)。
iwatch
具有递归监视文件夹的function(即:子文件夹)以及发送电子邮件以响应文件/目录事件。
inotify手册页位于那里
如果您更喜欢python脚本,可以使用pyinotify
值得知道的另一个实用程序是fileschanged
( 此处的手册页 ),它可以监视所选文件或目录上的文件系统事件,例如以下命令
fileschanged -s created -t1 $PWD
应该监视当前目录中的文件创建事件,在stdout
上写入创建文件的名称,超时为1秒。
fileschanged
可以递归地观看文件夹(如另一个答案所述,可以iwatch
一样),与incron
和inoticoming
不同。