我有一个perl脚本,可以将文件从一个传入目录排序到Ubuntu服务器上的其他目录。
现在,我每隔几分钟就将它作为cron作业运行,但是如果在将文件写入传入目录时启动脚本,则可能会出现问题。

更好的解决方案是在将文件写入传入目录或任何子目录时启动它。

我以为我可以将另一个脚本作为服务运行,每当发生目录更改时都将调用排序脚本,但是我不知道该怎么做。

最佳答案

在Linux上,您可以使用pyinotify库:https://github.com/seb-m/pyinotify

为了监视子目录,请在add_watch()调用中使用rec = True。监视/ tmp目录及其子目录以创建文件的完整示例:

import pyinotify

class EventHandler(pyinotify.ProcessEvent):
    def process_IN_CREATE(self, event):
        # Processing of created file goes here.
        print "Created:", event.pathname

wm = pyinotify.WatchManager()

notifier = pyinotify.Notifier(wm, EventHandler())
wm.add_watch('/tmp', pyinotify.IN_CREATE, rec=True)
notifier.loop()

09-25 21:10