我怎么能够不断地监视(小)文件是否有变化?
例如,当文件更新时(来自 Web 应用程序的操作),就会执行一个脚本(如果尚未运行)。
现在,我使用 cron 每分钟执行一次,但这最多会延迟一分钟。我想在文件更改后立即采取行动。
一旦服务器启动,也许我需要编写一些在后台运行的低级进程?
我想要这样做的原因是将 Web 应用程序与根操作(按需执行,文件更新时执行一次)分开。
答案1
incrond(inotify cron 守护进程)的行为类似于 cron,但使用 inotify 作为触发机制。本指南有一些相当全面的例子。
您描述的情况的一个示例 incron 条目可能是:
/path/to/file IN_CLOSE_WRITE /path/to/your_script
答案2
incron 就是您正在寻找的软件。
答案3
如果您正在运行 Linux(我假设您是这样),那么您可以依赖 Linuxinotify
机制在文件发生变化时通知用户空间进程。
同步是一个围绕该功能构建的程序,您可以将其配置为在文件发生变化时执行任意命令。