inotify 是一種強大的、細粒度的、非同步檔案系統監控機制,它滿足各種各樣的檔案監控需要,可以監控檔案系統的訪問屬性、讀寫屬性、許可權屬性、建立刪除、移動等操作,也可以監控檔案發生的一切變化。
inotify-tools 是乙個c庫和一組命令列的工作提供linux下inotify的簡單介面。
inotify-tools中包含inotifywait和inotifywatch兩個命令
inotifywait 命令可以用來收集有關檔案訪問資訊,linux發行版一般沒有包含這個命令。需要安裝inotify-tools,這個命令還需要將inotify支援編譯入linux核心,好在大多數linux都在核心中啟用inotify。
inotifywatch命令用於收集關於被監控的檔案系統的統計資料,包括每個inotify事件發生多少次。
-m #持續監聽
-r #使用遞迴形式監控目錄
-q #減少冗餘資訊,只列印出需要的資訊
-e #指定要監控的事件,多個事件使用逗號隔開
access #訪問,讀取檔案
modify #修改,檔案內容被修改
attrib #屬性,檔案元資料被修改
move #移動,對檔案進行移動操作 move_to move_from
create #建立,生成新檔案
open #開啟,對檔案進行開啟操作
close #關閉,對檔案進行關閉操作 close_write close_nowrite
delete #刪除,檔案被刪除 delete_self
unmount #解除安裝檔案或目錄的檔案系統
--timefmt #時間格式 y 年 m月 d日 h小時 m分鐘
--format #監控事件發生後的資訊輸出格式
%w #表示發生事件的目錄
%f #表示發生事件的檔案
%e #表示發生的事件
%xe #事件以「x」分隔
%t #使用由 --timefmt定義的時間格式
--exclude #排除檔案或目錄時,大小寫敏感
# --exclude="(.*.swp)|(.*~$)|(.*.swx)"使用正則匹配排除檔案
--excludei #同 --exclude 但是不區分大小寫
**問題: **
/usr/local/bin/inotifywait: error while loading shared libraries:libinotifytools.so.0: cannot open shared object file: no such file or directory
解決方法:ln -s /usr/local/lib/libinotifytools.so.0/usr/lib64/libinotifytools.so.0
--fromfile #從檔案讀取需要監視的檔案或排除的檔案,乙個檔案一行,排除的檔案以@開頭。
-z, --zero #輸出**的行和列,即使元素為空
--exclude #正則匹配需要排除的檔案,大小寫敏感。
--excludei #正則匹配需要排除的檔案,忽略大小寫。
-r, --recursive #監視乙個目錄下的所有子目錄。
-t , --timeout #設定超時時間
-e , --event #只監聽指定的事件。與inotifywait事件一致
-a , --ascending #以指定事件公升序排列。
-d , --descending #以指定事件降序排列。
inotifywait實現目錄監控
分類 linux程式設計 作業系統 2012 11 15 22 09 3230人閱讀收藏 舉報傳統的rsync crontab同步資料和實際會有差異,而inotify則基本可以達到實時的效果,當檔案有任何變動,就會觸發inotify。inotifywait 和 inotifywatch。inotif...
inotifywait實現檔案監控
檔案監控可以配合rsync實現檔案自動同步,例如監聽某個目錄,當檔案變化時,使用rsync命令將變化的檔案同步。可用於 自動發布 cd inotify tools 3.14 configure make make install安裝成功後在 usr local bin下會有inotifywait和i...
kafka實時監控
在kafka的開發和維護中,我們經常需要了解kafka topic以及連線在其上的consumer的實時資訊,比如logsize,offset,owner等。為此kafka提供了consumeroffsetchecker,它的用法很簡單 bin kafka run class.sh kafka.to...