inotifywait實時監控檔案目錄

2022-08-28 17:06:38 字數 1828 閱讀 8957

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...