我有一個小應用程序,它監視特定類型文件名(* .monitored)的目錄樹。它計算匹配文件的數量,使用inotify監視各種事件以匹配正在添加或刪除的文件,並且可以輪詢報告當前文件的數量,以及過去幾次文件添加和刪除的平均速率秒。目錄樹可以包含數十萬個文件,所以我試圖避免維護一個受監控文件的列表。Linux inotify事件重寫()覆蓋
如果我運行:
touch foo.monitored
我得到IN_CREATE,我設置NUM_FILES = 1
touch foo.ignored
我得到IN_CREATE,忽略它,並留下NUM_FILES = 1
mv foo.ignored foo.monitored
生成:
IN_MOVE D_FROM爲foo.ignored,我忽略,所以num_files = 1
IN_MOVED_TO for foo.monitored我把它作爲一個新文件,所以設置num_files = 2,但是舊的foo.monitored已被覆蓋,所以我的總數是錯誤。
我找不到一個事件表明舊foo.monitored的消亡 - 有沒有辦法做我想要的,而沒有維護一個龐大的文件名結構?
謝謝!
投票結束的人應該發表評論。這看起來像一個相當明確的問題。 – 2014-11-14 20:03:27