不使用Inotify从Linux内核读取文件系统事件
Reading File System Events from Linux Kernel without Inotify
在Linux中读取文件系统事件,我们大多数人使用Inotify,这真的是一个很好的一个。但它也有它的局限性。我必须跟踪所有的目录,我必须观察和获得每个目录的通知描述符。假设我想监控我的整个系统,它有大约1000万个目录。为inotify API列出它们并对它们进行排队将花费数小时。它也会消耗大量内存。我当然不能监视目录超过在/etc/syscntl.conf或/proc/sys/fs/inotify/max_user_watches中指定的目录。
但是我们知道每个文件系统事件都是由内核监控的,我们使用inotify API来注册某个目录修改。但我如何读取fs事件直接从内核没有API ..?[在Mac OS X中,我可以从/dev/fsevents中读取,同样,如果我可以从/proc或类似的东西中读取,那将是伟大的]。我也准备写一个内核模块,但请分享一些光在这个
你看了病毒扫描程序的东西了吗?例如,notify,还有fsnotify,并连接到dnotify和inotify。这取决于内核版本;从大约2.6.36(2011年初)开始以某种形式存在。
部分内核文件
- proc文件
- fsnotify.h
- fsnotify_backend.h
- fanotify.h
Lwn.net链接,
- API概述gh>
- 主提交通知 各种提交
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 正在读取二进制文件(is_open)
- 内核模式驱动程序可以在任何进程上执行读取进程内存吗?
- opencl openGL互操作内核参数用于读取 写入
- 内核模式:如何逐行读取 txt 文件
- CMake OpenCL:无法读取内核文件
- 内核驱动程序读取内存未发送整个字符串
- 用C/C++在Linux中读取内核信息
- 不使用Inotify从Linux内核读取文件系统事件