我正在寻找构建一个监视文件系统活动的文件系统同步实用程序,但似乎linux内核中的某些文件系统监视功能已过时或功能不全。
我的研究结果
dnotify首先发布通知具有通知删除,修改,访问,属性,创建,移动可以确定文件描述符的功能,但现在已经过时了inotify和fanotify
inotify排在第二位,通知具有通知访问,修改,属性,关闭,移动,删除,创建等功能,但它不会给你一个文件描述符或进程,并且会被fanotify过时
fanotify是最新的通知访问,修改,关闭,但不通知删除或属性,但确实提供文件描述符
我需要一种方法来确定流程(例如来自fd)以及删除,修改,属性等等,以便同步所有内容,任何建议?不幸的是,dnotify似乎是最好但最过时的
答案 0 :(得分:8)
答案 1 :(得分:3)
有一个很好的lib提供 inotify 的文件描述符或进程。它有自己的C API和inotifywatch util(适用于脚本),都在inotify-tools包中。
我非常不同意fanotify会过时。“
FAM和gamin是非常好的服务器/客户端选项。他们都使用inotify作为过时的dnotify和民意调查的第一选择。我更喜欢gamin。
答案 2 :(得分:1)
incron是这样的操作的有用工具。您可以为要监视的目录或文件创建配置文件。
http://inotify.aiken.cz/?section=incron&page=about&lang=en
在ubuntu中sudo apt-get install incron
/etc/incron.d/mynotification.conf
# notification for user creation
/home IN_ALL_EVENTS /opt/notify_user_created.sh $#