linux - 在 Linux 中监视文件系统更改的最佳方法

标签 linux filesystems inotify

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

我的研究发现了什么

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

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

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

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

最佳答案

你应该使用一个库而不是 inotify 和 friend - 比如 FAMGamin (两者的 API 相同)。这将使您的程序可移植到其他 Unix。

关于linux - 在 Linux 中监视文件系统更改的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381566/

相关文章:

用于将 Windows 路径更改为 Unix 路径的 Python 脚本

c++ - 来自 ExpandEnvironmentStrings 的本地化值

c - 使用 inotify 检查监视文件夹中的文件是否被覆盖

d - 使用inotify 为什么我的监视文件被忽略?

c++ - inotify 描述符上的读取被永远阻塞

java - windows-我的证书存储等效的 linux

linux - ssh中的一些字符被改变了

linux - 文件或目录更改时如何运行 shell 脚本?

python - 在用 Python 写入文件之前如何确保文件存在或可以创建?

c - 如何在C中快速创建大文件?