我有两台服务器,我想将rsync
两台服务器上的文件传输到一个位置。
- 服务器 1 有文件 A 和 B
- 服务器 2 有文件 A 和 B
rsync
当服务器 3 有文件 A 和 B后
当用户从服务器 1 中删除文件 A 并从服务器 2 中删除文件 B 时,服务器 3 上不应有任何文件。
但它在我的设置中无法正常工作:
rsync --delete server1 server3
rsync --delete server2 server3
它首先删除 A,然后删除 B,但 A 会从服务器 2 再次复制。最终我没有得到空目录,而是再次得到了 A。
有谁能解决这个问题?
答案1
您正在执行的 rsync 命令使 server3 成为其所复制服务器的严格副本。因此,它成为 server1 的克隆(缺少 A 而有 B),然后您告诉它成为 server2 的克隆(缺少 A 而有 B)
您能否退后一步并解释一下您在这里想要做什么?
答案2
你有没有尝试过
rsync -u --delete server1 server3
rsync --delete server2 server3
来自 rsync 手册页:
-u, --update update only (don’t overwrite newer files)
无论是服务器 1 还是服务器 2 首先进行同步,它都会尊重文件是否已经在服务器 3 中。
但请注意,您应该将 rsync 命令放在 1 个脚本中,并放置一个标志文件,以指示如果另一个脚本正在运行,则同步将不会运行。
如果有帮助的话请告诉我。