我正在考虑构建一个监视文件系统活动的文件系统同步实用程序,但是linux内核中的一些文件系统监视功能似乎已经过时或功能不全。
我的研究发现了什么
dnotify最先与通知一起出现,它具有通知删除、修改、访问、属性、创建、移动等功能,可以确定文件描述符,但现在已由inotify和fanotify过时
inotify以通知排在第二位,它具有通知访问、修改、属性、关闭、移动、删除、创建等功能,但它不提供文件描述符或进程,并且将因fanotify而过时
fanotify是最新的,它通知访问、修改、关闭,但不通知删除或属性,但提供文件描述符
我需要一种方法来确定进程(例如从fd)和删除,修改,属性等事情,以便同步一切,有什么建议吗?不幸的是,dnotify似乎是最好的,但最过时了。
发布于 2011-12-05 14:15:15
你应该使用一个库,而不是像FAM或Gamin这样的inotify和朋友(两者的API是一样的)。这将使您的程序可移植到其他Unixes。
发布于 2012-01-28 00:14:19
有一个很好的库,可以通过inotify提供文件描述符或进程。它有自己的C API和inotifywatch util (适用于脚本),所有这些都在inotify-tools包中。
我强烈反对fanotify会超过inotify的说法。
FAM和gamin是非常好的服务器/客户端选项。它们都使用inotify作为第一选项,而不是过时的dnotify和polls。我更喜欢野猪。
发布于 2015-02-26 04:57:12
对于这样的操作,incron是一个有用的工具。您可以为要监视的目录或文件创建配置文件。
http://inotify.aiken.cz/?section=incron&page=about&lang=en
在ubuntu中
sudo apt-get install incron/etc/incron.d/incron.d fication.conf
# notification for user creation
/home IN_ALL_EVENTS /opt/notify_user_created.sh $#https://stackoverflow.com/questions/8381566
复制相似问题