是的,rsync
本身并不能直接監控文件夾的變化,但你可以結合 inotifywait
工具來實現監控文件夾變化的功能
以下是一個簡單的示例,展示了如何使用 inotifywait
和 rsync
來監控文件夾變化并同步到另一個目錄:
首先,確保你的系統已經安裝了 inotify-tools
。如果沒有安裝,可以使用以下命令安裝:
對于基于 Debian 的系統(如 Ubuntu):
sudo apt-get install inotify-tools
對于基于 RHEL 的系統(如 CentOS):
sudo yum install inotify-tools
創建一個名為 sync_folder.sh
的腳本文件,并添加以下內容:
#!/bin/bash
SOURCE_DIR="/path/to/source/directory"
DESTINATION_DIR="/path/to/destination/directory"
# 使用 inotifywait 監控源文件夾的變化
inotifywait -m -r -e create -e modify -e delete "$SOURCE_DIR" | while read event file; do
# 使用 rsync 同步變化到目標文件夾
rsync -avz --delete "$SOURCE_DIR/$file" "$DESTINATION_DIR"
done
請將 SOURCE_DIR
和 DESTINATION_DIR
替換為你要監控的源文件夾和目標文件夾的路徑。
為腳本文件添加可執行權限:
chmod +x sync_folder.sh
運行腳本文件:
./sync_folder.sh
現在,sync_folder.sh
腳本會監控源文件夾的變化(創建、修改和刪除),并使用 rsync
將這些變化同步到目標文件夾。你可以根據需要調整腳本中的參數和選項。