inotify 是 Linux 系统中的一个内核子系统,它可以监控文件系统事件,如文件的创建、修改、删除等。而 rsync 是一个用于在本地和远程之间同步文件的工具。将这两者结合使用,可以实现实时的文件同步。
以下是一个简单的示例,说明如何将 inotify 与 rsync 结合使用:
首先,确保你的系统已经安装了 inotify-tools 和 rsync。在大多数 Linux 发行版中,可以使用以下命令进行安装:
sudo apt-get install inotify-tools rsync
创建一个名为 sync.sh 的 shell 脚本,并添加以下内容:
#!/bin/bash
SRC_DIR="/path/to/source/directory"
DEST_DIR="/path/to/destination/directory"
inotifywait -m -r -e create,modify,delete --format '%w%f' "${SRC_DIR}" | while read FILE
do
rsync -avz --delete "${SRC_DIR}/" "${DEST_DIR}"
done
在这个脚本中,我们使用 inotifywait 命令监控源目录(SRC_DIR)中的文件系统事件。当检测到事件时,我们将事件信息传递给 rsync 命令,以便将更改同步到目标目录(DEST_DIR)。
请注意,你需要根据实际情况替换 SRC_DIR 和 DEST_DIR 的值。
为 sync.sh 脚本添加可执行权限:
chmod +x sync.sh
运行 sync.sh 脚本:
./sync.sh
现在,每当源目录中的文件发生更改时,inotify 将检测到这些更改,并触发 rsync 将更改同步到目标目录。
请注意,这个示例仅用于演示目的。在实际应用中,你可能需要根据需求对脚本进行调整,例如添加日志记录、错误处理等功能。