2

我正在编写一个程序来监视文件系统。但是我无法检测到文件何时被删除。我尝试使用 FAN_MARK_ONLYDIR 标志进行监视,希望 fanotify 在删除受监视目录中的文件时引发一些事件,但没有结果。

甚至可以使用 fanotify 做到这一点?有什么可以帮助我做到这一点?

4

1 回答 1

3

根据linuxquestions.org 线程 fanotify不检测文件替换或删除或子目录创建、重命名或删除。另请参阅baach.de 讨论,它在其他文件或目录更改监视器中比较(或提及)inotify, dnotify, fam, Fanotify, tripwire, Python-fuse,和 (python)。llfuse

inotify支持IN_DELETEIN_DELETE_SELF事件,如果您使用有限数量的目录,而不是整个文件系统,则使用起来很实用。

编辑:其网页中提到inotify的限制或警告如下:

inotify 监视目录不是递归的:要监视目录下的子目录,必须创建额外的监视。对于大型目录树,这可能会花费大量时间。...如果监视整个目录子树,并在该树中创建了一个新子目录,请注意,当您为新子目录创建监视时,可能已经在子目录中创建了新文件。因此,您可能希望在添加手表后立即扫描子目录的内容。

于 2013-12-17T17:03:48.673 回答