2017-06-06 83 views
1

如何在Ubuntu 16.04中構建一個工具,該工具可以每隔5分鐘(或指定時間)監視給定的文件夾/目錄,並且可以檢查它是否包含任何文件(文件可以是任何格式) ?爲完成這項任務我需要學習什麼?我可以在python腳本的幫助下做到這一點,或者我需要學習shell腳本。在linux中監視文件

回答

1

嘗試使用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

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

+0

@ fechnert感謝您向我添加有關看門狗的知識,但我想每隔10分鐘監視一次該文件夾是否包含任何文件。是否可以使用看門狗?或者你可以通過python向我提供其他方法。謝謝 – Blasteraj

+0

在這種情況下,試試['os.walk()'](https://docs.python.org/3/library/os.html#os.walk) – fechnert