- Python自動化運維快速入門
- 鄭征
- 551字
- 2019-12-09 14:48:19
2.3 文件系統監控
運維工作離不開文件系統的監控,如某個目錄被刪除,或者某個文件被修改、移動、刪除時需要執行一定的操作或發出報警。當然,讀者可能會想到使用循環檢查文件或目錄的信息來滿足上述需求,也不是不可以,但這不是一個最好的方案,一是因為循環操作會不停地執行指令太耗CPU,二是不夠實時,循環操作中會放一些等待指令,如time.sleep(3)來減少CPU的消耗,這就會導致監控的時機有一定的滯后,不夠實時。本節介紹一個第三方庫watchdog來實現文件系統監控,其原理是通過操作系統的事件觸發的,不需要循環,也不需要等待。
提示
文件系統空間不足的監控請參考上節系統信息監控中磁盤監控的部分。
【示例2-19】watchdog用來監控指定目錄/文件的變化,如添加刪除文件或目錄、修改文件內容、重命名文件或目錄等,每種變化都會產生一個事件,且有一個特定的事件類與之對應,然后通過事件處理類來處理對應的事件,怎么樣處理事件完全可以自定義,只需繼承事件處理類的基類并重寫對應實例方法。


運行結果如下:
監控目錄 d:\test 2018-06-05 22:28:52 文件夾 d:\test\dir0 創建 2018-06-05 22:29:03 文件 d:\test\file1.txt 創建 2018-06-05 22:29:03 文件 d:\test\file1.txt 修改 2018-06-05 22:29:14 文件夾由 d:\test\dir0 移動至 d:\test\dir3 2018-06-05 22:29:25 文件由 d:\test\file1.txt 移動至 d:\test\file2.txt 2018-06-05 22:29:29 文件 d:\test\file2.txt 刪除
運維中以下場景十分適合使用watchdog。
(1)監控文件系統中文件或目錄的增、刪、改情況 (2)當特定的文件被創建、刪除、修改、移動時執行相應的任務
第二個場景在后續的小節中會有具體的應用。
推薦閱讀
- Google Apps Script for Beginners
- VMware View Security Essentials
- Xcode 7 Essentials(Second Edition)
- 深入淺出Windows API程序設計:編程基礎篇
- SQL基礎教程(視頻教學版)
- Learning AngularJS for .NET Developers
- 零基礎看圖學ScratchJr:少兒趣味編程(全彩大字版)
- Learning Concurrency in Python
- Visual C++開發寶典
- Swift編程實戰:iOS應用開發實例及完整解決方案
- Microsoft Hyper-V PowerShell Automation
- 小學生C++編程課堂(新手篇)
- Mockito for Spring
- INSTANT Jsoup How-to
- Intelligent Document Capture with Ephesoft(Second Edition)