inotify是一個Linux內核提供的API,可以監視文件系統事件,如文件或目錄的創建、刪除、修改等。以下是關于inotify在Debian服務器監控中的一些應用示例:
在Debian/Ubuntu系統上,可以使用以下命令安裝inotify-tools:
sudo apt-get install inotify-tools
使用inotifywait
命令可以等待文件系統上的特定事件,如創建、刪除、修改等。例如,要遞歸監控/root目錄并輸出所有創建和修改事件,可以使用以下命令:
inotifywait -m -r -e create,modify /root
inotifywatch
命令用于收集和顯示文件系統事件的統計信息。例如,要統計/root目錄的創建和修改事件的次數,可以使用以下命令:
inotifywatch -r -e create,modify /root
以下是一個簡單的腳本示例,使用inotifywait監控/tmp/vip.txt文件的變化,并在文件內容改變或刪除時記錄告警日志:
#!/bin/bash
LOG_FILE="/mnt/11.log"
FILE_TO_WATCH="/tmp/vip.txt"
inotifywait -m -q -e create,move,delete,modify --format '%e %w %f' "$FILE_TO_WATCH" |
while read event file _; do
echo "$(date '%Y-%m-%d %H:%M:%S') Hostname: $(hostname) IP: $(ip addr show eth0 | awk '/inet / {print $2}' | cut -d: -f1) - Event: $event, Filename: $file" >> "$LOG_FILE"
done
要監視多個目錄和文件的創建、刪除和移動操作,可以使用以下命令:
inotifywait -m -r -e create,delete,move /path/to/directory1 /path/to/directory2 /path/to/file1 /path/to/file2
以下命令將監視/path/to/directory目錄,并在檢測到事件時執行/path/to/script.sh腳本:
inotifywait -m -r -e create,delete,move /path/to/directory -- /path/to/script.sh
通過這些示例,可以看到inotify在Debian服務器監控中的廣泛應用,包括實時監控文件系統變化、收集統計數據、同步文件以及執行自定義腳本等。