在linux中监视文件

在linux中监视文件

问题描述:

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

尝试使用incron。 Incron用于监视文件系统活动。它由一个守护进程和一个表操作器组成。你可以像使用普通的cron一样使用它。不同的是,inotify cron处理文件系统事件而不是时间段

+0

是否可以通过inchron每隔5分钟检查文件夹是否包含任何文件。你可以分享一个链接来学习inchrone – Blasteraj

+0

https://www.howtoforge.com/tutorial/how-to-run-commands-on-file-or-directory-changes-with-incron-on-ubuntu-16-04/ – Rups

与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

+0

@ fechnert感谢您向我添加有关看门狗的知识,但我想每隔10分钟监视一次该文件夹是否包含任何文件。是否可以使用看门狗?或者你可以通过python向我提供其他方法。谢谢 – Blasteraj

+0

在这种情况下,试试['os.walk()'](https://docs.python.org/3/library/os.html#os.walk) – fechnert