我需要一个程序,当文件被移动、删除或其扩展属性被更改时,它会生成事件。我正在运行 Ubuntu Karmic Koala 32 位桌面。
通知是此类问题的标准解决方案,但 inotify 无法安装递归监视,因此唯一的选择是find
在文件系统上安装等效项,并在每个节点上添加 inotify 监视。这就是 eginotifywatch
所做的。这对我来说不起作用,因为我的文件系统有 100 万个文件,并且为所有文件安装监视需要很长时间。
通知通知可以工作,除了我必须为此修补内核(我当前运行的是 2.6.31-20),并且维护 Linux 内核的补丁超出了我的时间投入。
我曾经用过rfsdelta(其内核模块类似于重新定位),但是它无法在 2.6.31 上编译,因为它使用了过时的 Linux 安全框架 API。
我怀疑 Linux 上的按需防病毒软件可能使用了我不知道的其他技术。
答案1
如果您想要监控的结构上的流量不是太密集,您可能会对 iwatch 感兴趣,它负责递归地放置监听器。
http://iwatch.sourceforge.net/index.html
但要小心,因为如果文件系统事件非常接近并且试图创建深层结构(例如:a / b / c / d / e / f),您可能不会因为竞争条件而选择所有事件。
请参阅此处了解更多信息: