当前位置: 首页>>技术教程>>正文


automation – 如何在目录上放置触发器

问题描述

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

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

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

在此先感谢您的帮助。

最佳回答

inoticoming

inoticoming is a daemon to watch a directory with Linux’s inotify framework and trigger actions once files with specific names are placed in there.

For example it can be used to wait for .changes files uploaded into a directory and call reprepro to put them into your repository.

incron

incron is an “inotify cron” system. It works like the regular cron but is driven by filesystem events instead of time events. This package provides two programs, a daemon called “incrond” (analogous to crond) and a table manipulator “incrontab” (like “crontab”).

incron uses the Linux Kernel inotify syscalls.

like cron, each user can edit its own incron tables.

次佳回答

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

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

第三种回答

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

fileschanged -s created -t1 $PWD

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

incroninoticoming不同,fileschanged可以递归监视文件夹(就像另一个答案中提到的iwatch一样)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11230.html,未经允许,请勿转载。