Inotify
高效、實時的Linux 文件系統事件監控框架
概要
1. 爲什麼需要監控文件系統? 人們需要知道在某些文件(夾)上都有哪些變化,比如:
通知配置文件的改變
跟蹤某些關鍵的系統文件的變化
監控某個分區磁盤的整體使用情況
系統崩潰時進行自動清理
自動觸發備份進程
向服務器上傳文件結束時發出通知
通常使用文件輪詢的通知機制,但是這種機制只適用於經常改變的文件(因爲它可以確保每過x秒就可以得到i/o),其他情況下都非常低效,並且有時候會丟失某些類型的變化,例如文件的修改時間沒有改變。像 Tripwire這樣的數據完整性系統,他們基於時間調度來跟蹤文件變化,但是如果想實時監控的變化的話,那麼時間調度就束手無策了。Inotify 就這樣應運而生。
2. Inotify到底是什麼? Inotify是一種文件變化通知機制,Linux內核從2.6.13開始引入。在BSD和Mac OS系統中比較有名的是kqueue,它可以高效的實時跟蹤Linux文件系統的變化。近些年來,以fsnotify 作爲後端,幾乎所有的主流Linux發行版都支持Inotify 機制。如何知道你的Linux 內核是否支持Inotify機制呢
總結
綜上所述,Inotify爲Linux提供了一套高效監控和跟蹤文件變化機制,他可以實時的處理、調試以及監控文件變化,而輪詢是一種延遲機制。對於系統管理員,關於實現事件驅動的服務和系統備份,構建服務以及基於文件操作的程序調試等,inotify無疑提供了強大的支持。
Last updated