我正在编写一个程序来监视文件系统。但是我无法检测到文件何时被删除。我尝试使用 FAN_MARK_ONLYDIR 标志进行监视,希望 fanotify 在删除受监视目录中的文件时引发一些事件,但没有结果。
甚至可以使用 fanotify 做到这一点?有什么可以帮助我做到这一点?
根据linuxquestions.org 线程 fanotify
不检测文件替换或删除或子目录创建、重命名或删除。另请参阅baach.de 讨论,它在其他文件或目录更改监视器中比较(或提及)inotify, dnotify, fam, Fanotify, tripwire, Python-fuse,
和 (python)。llfuse
inotify
支持IN_DELETE
和IN_DELETE_SELF
事件,如果您使用有限数量的目录,而不是整个文件系统,则使用起来很实用。
编辑:其网页中提到inotify
的限制或警告如下:
inotify
监视目录不是递归的:要监视目录下的子目录,必须创建额外的监视。对于大型目录树,这可能会花费大量时间。...如果监视整个目录子树,并在该树中创建了一个新子目录,请注意,当您为新子目录创建监视时,可能已经在子目录中创建了新文件。因此,您可能希望在添加手表后立即扫描子目录的内容。