![如何让 pyinotify 在对文件进行任何修改时运行程序?](https://linux22.com/image/549262/%E5%A6%82%E4%BD%95%E8%AE%A9%20pyinotify%20%E5%9C%A8%E5%AF%B9%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%E4%BB%BB%E4%BD%95%E4%BF%AE%E6%94%B9%E6%97%B6%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我必须观察对文件的任何输入或对文件当前内容所做的任何更改,任何修改后我都需要运行位于同一文件夹中的 python 程序。
我尽力去理解,但没有得到任何好的结果。如果有人能帮助我解决这个问题,那将非常有帮助。
答案1
你可以做以下两件事之一。
- 您可以编写一个程序,直接挂载到 inotify API 并对更改事件做出反应。这可能是最优雅的方法,但远远超出了 ServerFault 的范围。
- 您可以使用
inotifywait
(部分inotify-tools
)来监视文件并在发生某些事情时触发脚本。
对于 inotifywait,您需要设置一个 shell 脚本(最有可能是在 init.d 中)来执行以下步骤:
#!/bin/sh
while inotifywait -e modify /path/to/file
do
/path/to/reaction_script.py
done
当您在这样的条件中调用 inotifywait 时,请不要使用-m
开关;它将不起作用。