2013-05-05 76 views
7

在Linux中,要閱讀文件系統事件,我們大多數人都使用Inotify,它確實是一個很好的例子。但它有侷限性。 我必須跟蹤我必須觀察的所有目錄,併爲每個目錄獲取一個inotify描述符。比方說,我想監視我的整個系統,它有大約一千萬個目錄。爲inotify API列出並排隊它們需要幾個小時。它也會吃很多的記憶。 我當然無法看超過/etc/syscntl.conf或/ proc/sys/fs/inotify/max_user_watches中max_user_watches中指定的目錄。從Linux內核中讀取文件系統事件(不帶Inotify)

但是我們知道,每個文件系統事件都由內核監視,我們使用inotify API來註冊某個目錄修改。但是,我如何直接從內核讀取fs事件沒有API ..? [在Mac OS X中,我可以從/ dev/fsevents中讀取,同樣如果我可以從/ proc或類似的東西讀取,它會很棒]。我準備寫一個內核模塊,但請分享一下這個。

+0

這是一個非常有用的問題。我也一直試圖在Linux發行版上實現類似的功能,但沒有成功。也許'lsof'已經可以滿足你的需求了。 – psibar 2013-05-05 09:30:24

回答