inotify
是 Linux 內核提供的一種文件系統事件監控機制,可以用來監控文件或目錄的變化,如創建、刪除、修改等。在 Debian 系統下,你可以使用 inotify-tools
這個軟件包來方便地使用 inotify
。
以下是在 Debian 下使用 inotify
的步驟:
inotify-tools
首先,你需要安裝 inotify-tools
軟件包。打開終端,運行以下命令:
sudo apt update
sudo apt install inotify-tools
inotifywait
命令inotifywait
是 inotify-tools
提供的一個命令行工具,用于等待并監控文件系統事件。以下是一些常用的 inotifywait
命令選項和用法示例:
* 監控單個文件或目錄:`inotifywait /path/to/file_or_directory`
* 監控多個文件或目錄:`inotifywait -m /path/to/file_or_directory1 /path/to/file_or_directory2`
* 監控所有子目錄和文件的變化:`inotifywait -r /path/to/directory`
* 指定要監控的事件類型(如創建、刪除、修改等):`inotifywait -e create,delete,modify /path/to/file_or_directory`
* 輸出詳細信息:`inotifywait -m -r -e create,delete,modify --format '%w%f %e' /path/to/directory`
你可以將 inotifywait
命令集成到 shell 腳本中,以便自動化地監控文件系統事件并執行相應的操作。例如,以下是一個簡單的腳本示例,用于監控指定目錄中的文件創建事件,并在檢測到新文件時將其復制到另一個目錄:
#!/bin/bash
SOURCE_DIR="/path/to/source_directory"
DEST_DIR="/path/to/destination_directory"
inotifywait -m -r -e create --format '%w%f' "$SOURCE_DIR" | while read NEW_FILE
do
cp "$NEW_FILE" "$DEST_DIR"
echo "Copied $NEW_FILE to $DEST_DIR"
done
保存上述腳本為 monitor.sh
,然后給予執行權限并運行它:
chmod +x monitor.sh
./monitor.sh
現在,每當在 SOURCE_DIR
目錄中創建新文件時,該文件將被自動復制到 DEST_DIR
目錄中。
請注意,inotify
監控的文件系統事件可能會受到一些限制,例如文件系統的大小限制、監控的文件數量限制等。此外,長時間運行 inotifywait
命令可能會消耗較多的系統資源,因此請根據實際需求進行合理配置和使用。