【问题标题】:Best way to monitor file system changes in linux在linux中监视文件系统更改的最佳方法
【发布时间】:2011-12-05 06:04:01
【问题描述】:

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

我的研究发现

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

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

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

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

【问题讨论】:

    标签: linux filesystems inotify


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      我强烈反对 fanotify 会过时 inotify。

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

      【讨论】:

      • 出于兴趣,您强烈反对的原因是什么?
      • 我也很好奇 - 用 inotify 递归地查看目录充其量是棘手的。 fanotify 无法直接比较,但对于监控整个磁盘卷,它更简单、更可靠。
      • 除非您想监视它是否有“文件已重命名”或“文件已删除”之类的内容,然后您仍然不走运。 ://
      • 这些似乎都没有提供进程 ID。 “inotify API 不提供有关触发 inotify 事件的用户或进程的信息。”
      【解决方案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 $#
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        相关资源
        最近更新 更多