是的,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
将这些变化同步到目标文件夹。你可以根据需要调整脚本中的参数和选项。