官术网_书友最值得收藏!

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)當特定的文件被創建、刪除、修改、移動時執行相應的任務

第二個場景在后續的小節中會有具體的應用。

主站蜘蛛池模板: 景洪市| 乐陵市| 神木县| 高安市| 临潭县| 双鸭山市| 砀山县| 通州市| 柳林县| 平乡县| 丰宁| 丰宁| 惠水县| 新泰市| 滦平县| 泽库县| 大悟县| 缙云县| 威信县| 镇康县| 广灵县| 元谋县| 庐江县| 阿坝县| 珲春市| 彝良县| 陈巴尔虎旗| 金平| 扬州市| 凤庆县| 阿勒泰市| 保康县| 麻城市| 阿尔山市| 金沙县| 望都县| 余干县| 炎陵县| 临澧县| 和政县| 阿图什市|