inotify 是 Linux 系統中的一個功能,它可以監控文件系統事件,如文件的創建、修改、刪除等。要使用 inotify 進行文件備份,你可以結合 inotifywait 命令和 rsync 或其他備份工具來實現自動化的文件備份。
以下是一個簡單的示例,展示了如何使用 inotifywait 和 rsync 進行文件備份:
首先,確保你已經安裝了 inotify-tools 和 rsync。在大多數 Linux 發行版中,可以使用以下命令安裝:
sudo apt-get install inotify-tools rsync
創建一個腳本文件,例如 backup.sh,并添加以下內容:
#!/bin/bash
# 源目錄和目標目錄
SRC_DIR="/path/to/source/directory"
DEST_DIR="/path/to/destination/directory"
# 使用 inotifywait 監控源目錄中的文件變化
inotifywait -m -r -e create,modify,delete --format '%w%f' "${SRC_DIR}" | while read FILE
do
# 使用 rsync 同步文件到目標目錄
rsync -av --delete "${SRC_DIR}/" "${DEST_DIR}"
done
在這個腳本中,inotifywait 的參數解釋如下:
-m:監控模式,持續監控文件系統事件。-r:遞歸監控子目錄。-e:指定要監控的事件類型,這里我們監控創建(create)、修改(modify)和刪除(delete)事件。--format '%w%f':自定義輸出格式,這里我們只輸出發生變化的文件路徑。為腳本添加可執行權限:
chmod +x backup.sh
運行腳本:
./backup.sh
現在,每當源目錄中的文件發生變化時,inotifywait 會檢測到這些變化,并觸發 rsync 命令將文件同步到目標目錄。這樣,你就可以實現實時的文件備份。
注意:這個示例僅適用于單個目錄的備份。如果你需要監控多個目錄或實現更復雜的備份策略,你可能需要根據實際需求修改腳本。