温馨提示×

Ubuntu inotify能监控哪些文件

小樊
47
2025-10-18 18:26:08
栏目: 智能运维

Ubuntu inotify能监控的文件及功能

inotify是Ubuntu(及所有Linux发行版)内核提供的实时文件系统事件监控机制,可用于跟踪文件或目录的变化。通过工具(如inotify-tools)或编程接口(如C语言的inotify_init/inotify_add_watch),用户可以监控以下内容:

一、能监控的文件类型

inotify可监控本地文件系统中的所有文件(包括普通文件、目录、符号链接等),但不支持直接监控网络文件系统(如NFS、Samba)(部分网络文件系统可能通过特殊配置支持,但并非原生兼容)。

二、能监控的主要事件类型

inotify支持多种事件类型,覆盖文件生命周期中的常见操作,主要包括:

  • IN_ACCESS:文件被读取(如catvim打开文件);
  • IN_MODIFY:文件内容被修改(如echo写入、vim编辑保存);
  • IN_ATTRIB:文件属性变更(如权限chmod、时间戳touch、所有者chown修改);
  • IN_CREATE:在监控目录下创建新文件或子目录;
  • IN_DELETE:监控目录下的文件或子目录被删除;
  • IN_CLOSE_WRITE:以可写模式打开的文件被关闭(通常表示写入完成,比IN_MODIFY更适合检测文件保存操作);
  • IN_MOVED_FROM:文件或目录从监控目录移出;
  • IN_MOVED_TO:文件或目录移入监控目录;
  • IN_DELETE_SELF:被监控的文件或目录本身被删除;
  • IN_MOVE_SELF:被监控的文件或目录本身被移动。

三、监控的范围

  • 单个文件:通过指定文件路径,监控该文件的特定事件(如inotifywait -m /path/to/file -e modify);
  • 目录及子目录:通过-r(递归)选项,监控指定目录及其所有子目录中的文件变化(如inotifywait -m -r /path/to/directory -e create,delete)。

四、监控的限制

  • 数量限制:系统对同时监控的文件/目录数量有上限(通过/proc/sys/fs/inotify/max_user_watches查看,默认值通常为8192),超过需调整(如echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches);
  • 性能影响:高频率事件(如大量小文件写入)可能导致事件合并或遗漏,不适合极端高频场景。

0