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
事件處理。