24

我正在考虑构建一个监视文件系统活动的文件系统同步实用程序,但似乎 linux 内核中的某些文件系统监视功能已过时或功能不全。

我的研究发现了什么

dnotify 以通知为先,具有通知删除、修改、访问、属性、创建、移动的功能,可以确定文件描述符,但现在 inotify 和 fanotify 已过时

inotify 以通知排在第二位,具有通知访问、修改、属性、关闭、移动、删除、创建等功能,但它不会为您提供文件描述符或进程,并且会被 fanotify 过时

fanotify 是最新的通知访问,修改,关闭,但不通知删除或属性,但确实提供文件描述符

我需要一种方法来确定进程(例如从 fd)以及删除、修改、属性等内容,以便同步所有内容,有什么建议吗?不幸的是 dnotify 似乎是最好但最过时的

4

3 回答 3

8

您应该使用库而不是inotify和朋友 - 类似于FAMor Gamin(两者的 API 相同)。这将使您的程序可移植到其他 Unix。

于 2011-12-05T06:15:14.973 回答
3

有一个很好的库提供文件描述符或带有inotify的进程。它有自己的 C API 和 inotifywatch util(适用于脚本),都在 inotify-tools 包中。

我强烈反对 fanotify 会过时 inotify。

FAM 和 gamin 是非常好的服务器/客户端选项。他们都使用 inotify 作为过时的 dnotify 和民意调查的首选。我更喜欢gamin。

于 2012-01-27T16:14:18.927 回答
3

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 $#
于 2015-02-25T20:57:11.563 回答