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