文件更改时执行命令

Ale*_*lex 10 automation linux unix inotify cron

我有一个场景,我每天将 .csv 文件上传到特定文件夹 /tmp/data_upload,旧文件被新文件替换。

上传数据后,我需要运行 Python 脚本。为此,我有一个想法来创建一个 cron 作业并监视文件中的更改。我试过使用 inotify,但我对 Unix 域不太了解。我怎样才能做到这一点?

一旦上传文件夹中的文件发生日期更改,我需要执行脚本 test.py,例如 /tmp/data_upload。

小智 11

您可能需要 incrond(inotify cron 守护程序),它将监视文件的更改,然后执行脚本。

Incrond 可以监控添加新文件、修改、删除等等。这是一篇文章,通过一些示例展示了 incrond 可以监控的事件。

您的情况示例,您可以创建/etc/incron.d/data_upload包含内容的文件

/tmp/data_upload IN_CREATE,IN_MODIFY /path/to/test.py 
Run Code Online (Sandbox Code Playgroud)

  • 虽然这在理论上可以回答这个问题,但 [最好](​​http://meta.stackoverflow.com/q/8259) 在此处包含答案的基本部分,并提供链接以供参考。 (2认同)