0

初始化源目录和目标目录。

srcdir=/user/user1/src
tagtdir=/user/user1/dest

我希望在将文件复制到 srcdir 并-m进行持续监控时收到通知。

inotifywait -m -r -e close "$srcdir" | 

while read filename eventlist eventfile 

调用我的 python 脚本。

do 
    mv "$srcdir/$eventfile" "$tgtdir/$eventfile" && ./myscript.py "$eventfile" 
done 

不幸的是,我的脚本有一段时间了,如果在myscript.py执行时还有其他文件被复制,我会错过这些事件。是否可以将事件排队并稍后处理?

另一种选择是我将myscript.py在后台运行,这可能会解决这个问题。

4

1 回答 1

0

您可以改用Watchman;它作为持久服务运行,并会记住您错过的事件。

您可以通过多种不同的方式来实现您的用例,但最简单的方法可能是设置触发器并让 watchman 在文件更改时直接运行您的脚本,或者使用 pywatchman 客户端绑定来运行持久的 python 脚本并订阅事件并采取您想要的任何操作。

于 2015-02-26T22:47:21.100 回答