在Debian系統中,inotify是一個強大的內核子系統,用于監控文件系統事件,如文件的創建、刪除、修改等。以下是一些使用inotify的實用技巧:
首先,確保你的系統已經安裝了inotify-tools。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt-get install inotify-tools
監控文件或目錄的變化:
inotifywait -m -r -e create,modify /root
這個命令會遞歸監控 /root 目錄,輸出所有創建和修改事件,并持續監控。
后臺運行和輸出日志:
將inotifywait設置為后臺運行,并將輸出保存到日志文件中:
inotifywait -mrqd --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /etc -o /tmp/file_change.log
參數 -d 或 --daemon 表示以守護進程模式運行,并使用 -o 或 --outfile 指定日志文件。
以下是一個簡單的shell腳本示例,使用inotifywait監控指定目錄,并在文件變化時執行相應操作:
#!/bin/bash
WATCH_DIR="/path/to/directory"
CMD="echo 'File changed: $watched_file'"
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib "$WATCH_DIR" | while read date time dir file event; do
watched_file="$file"
eval "$CMD"
done
直接監控根目錄時,可能會超出系統允許的每個用戶可以監視的inotify事件的數量上限??梢酝ㄟ^以下命令查看當前的限制:
cat /proc/sys/fs/inotify/max_user_watches
要解決這個問題,需要增加每個用戶允許的inotify監視器的數量。
通過這些實用技巧,你可以更有效地使用inotify來監控和管理你的Debian系統中的文件和目錄變化。