inotify是Linux内核提供的文件系统事件监控机制,在Ubuntu中通过以下方式工作:
inotify_init
、inotify_add_watch
)与内核模块通信,初始化监控实例并指定监控路径及事件类型。inotify_event
结构体并放入队列。read
系统调用读取队列中的事件,解析事件类型(如IN_CREATE
对应文件创建)及文件路径等信息。inotify_add_watch
注册时返回,用于关联事件与路径。IN_MODIFY | IN_DELETE
)指定需监听的事件类型,支持组合多个事件。关键命令与工具:
inotifywait
/inotifywatch
:直接监控文件/目录,输出事件信息(如inotifywait -m -e create,delete /path
)。限制:
/proc/sys/fs/inotify/max_user_watches
调整。IN_MOVED_FROM
/IN_MOVED_TO
事件处理。