监控linux中的文件

时间:2017-06-06 09:10:44

标签: linux shell

如何在Ubuntu 16.04中构建一个工具,可以每5分钟(或指定的时间)监视一个给定的文件夹/目录,并检查它是否包含任何文件(文件可以是任何格式)?做这项任务我需要学习什么?我可以在python脚本的帮助下完成这项工作,还是我需要学习shell脚本。

2 个答案:

答案 0 :(得分:1)

尝试使用incron。 Incron用于监视文件系统活动。它由一个守护进程和一个表操纵器组成。您可以使用与常规cron类似的方式。区别在于inotify cron处理文件系统事件而不是时间段

答案 1 :(得分:1)

使用python我会尝试使用watchdog。多次使用它来监听大型目录树中的事件,它非常简单:

import time
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler

if __name__ == "__main__":

    path = '.'
    event_handler = LoggingEventHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()

    observer.join()

使用此代码段,您将获得在定义的path内发生的所有事件。要与他们做更多的事情,请深入了解documentation看门狗。