Ubuntu系统中的inotify支持以下事件类型:
基本事件:
- IN_ACCESS:文件被访问(读取)。
- IN_MODIFY:文件内容被修改。
- IN_ATTRIB:文件的元数据(如权限、所有者等)发生变化。
- IN_CLOSE_WRITE:文件在关闭前被写入。
- IN_CLOSE_NOWRITE:文件被关闭,但没有写入操作。
- IN_OPEN:文件被打开。
- IN_MOVED_FROM:文件从一个目录移动到另一个目录。
- IN_MOVED_TO:文件被移动到一个新的目录。
- IN_CREATE:在监控的目录中创建了新文件或目录。
- IN_DELETE:文件或目录被删除。
- IN_DELETE_SELF:监控的文件或目录本身被删除。
- IN_MOVE_SELF:监控的文件或目录本身被移动。
扩展事件:
- IN_UNMOUNT:文件系统被卸载。
- IN_Q_OVERFLOW:事件队列溢出。
- IN_IGNORED:由于资源限制,某些事件被忽略。
- IN_CLOSE:文件被关闭,无论是否进行了写操作。
组合事件:
可以通过位运算符将多个基本事件组合成一个复合事件。例如,IN_ACCESS | IN_MODIFY
表示监控文件被访问和修改的事件。
请注意,在使用inotify时,需要注意系统资源的限制,如每个用户可以监视的inotify事件数量上限(默认情况下通常是8192个),以及监控目录的深度限制。可以通过调整内核参数(如/proc/sys/fs/inotify/max_user_watches
)来增加监控数量的上限。