inotify
是 Linux 內核提供的一種文件系統事件監控機制,它可以實時監控文件或目錄的變化,如創建、刪除、修改等。在 Ubuntu 上配置 inotify
通常涉及以下幾個步驟:
安裝 inotify-tools:
inotify-tools
是一個提供命令行工具來使用 inotify
的軟件包。你可以使用以下命令來安裝它:
sudo apt-get update
sudo apt-get install inotify-tools
使用 inotifywait:
inotifywait
是 inotify-tools
中的一個命令行工具,它可以用來監控文件系統事件。以下是一個簡單的使用示例:
inotifywait -m /path/to/directory -e create -e delete -e modify
這個命令會監控 /path/to/directory
目錄,并在檢測到創建、刪除或修改事件時輸出相關信息。
編寫腳本:
你可以編寫自己的腳本來使用 inotifywait
或其他 inotify
相關的工具。例如,以下是一個簡單的 Bash 腳本,它會監控一個目錄并在檢測到事件時發送郵件通知:
#!/bin/bash
MONITOR_DIR="/path/to/directory"
EMAIL="your-email@example.com"
inotifywait -m -r -e create,delete,modify --format '%w%f' "${MONITOR_DIR}" | while read FILE
do
echo "File ${FILE} has been modified." | mail -s "File Change Notification" "${EMAIL}"
done
在這個腳本中,-r
選項表示遞歸監控子目錄,--format '%w%f'
用于指定輸出格式,這里輸出的是發生變化的文件路徑。
設置腳本權限: 如果你創建了自己的腳本,別忘了給它設置執行權限:
chmod +x /path/to/your/script.sh
運行腳本: 你可以通過終端直接運行腳本來開始監控,或者將其設置為后臺服務或 cron 作業來自動運行。
請注意,inotify
有一個限制,即它只能同時監控一定數量的文件描述符。默認情況下,這個限制可能對于某些應用來說太低。如果你遇到問題,可能需要增加這個限制??梢酝ㄟ^以下命令來查看當前的 inotify
限制:
cat /proc/sys/fs/inotify/max_user_watches
如果需要增加限制,可以使用以下命令:
sudo sysctl fs.inotify.max_user_watches=524288
這個命令會將限制增加到 512KB。如果你想讓這個改變永久生效,可以將它添加到 /etc/sysctl.conf
文件中:
fs.inotify.max_user_watches=524288
然后運行 sudo sysctl -p
來應用更改。