我有一个小应用程序,它监视特定类型文件名(* .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