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)來增加監控數量的上限。