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