如何在不同的服务器上合并目录?

时间:2012-10-11 05:32:42

标签: linux directory centos replication rsync

我有3个单独的服务器,带有分片图像目录(a0-z9)。不幸的是我的rsync和php上传脚本一路走来,现在我在3台服务器上有3个不匹配的目录应该是相同的。我不关心覆盖......如果它已经存在,就没有必要覆盖它 - 它是一样的。

服务器A

/path/img/a0/001/
/path/img/a0/.../
/path/img/a0/999/
/path/img/../
/path/img/z9/001/
/path/img/z9/.../
/path/img/z9/999/

ServerB和ServerC具有相同的布局。它们都具有完全相同的2位数目录结构(260个目录,a0-z9)。但是他们有不同的子目录。 ServerA可能有a0/001/,但服务器B和B上可能缺少此目录。 C(或其他方式)。

我需要合并所有3个目录。

最终如果一台服务器上存在c7/003/,则需要在所有服务器上都存在。

我该怎么做?我已经修好了它,但我仍然需要清理当前的混乱。

2 个答案:

答案 0 :(得分:0)

下面提供了用于同步两个文件夹的rsync命令(给定一个好的源和一个过时/损坏的目标),您的脚本可能因为运行时间太长而死亡。尝试为较小的子目录运行它。

rsync -a --delete-after /source/images/ -e 'ssh -l username' \
    hostname:/path/to/destination/images/

答案 1 :(得分:0)

您可以尝试使用Unison,因为您需要双向同步。首先将服务器1与服务器2同步,然后将服务器1与服务器3同步,最后再将服务器1与服务器2同步。最后,所有三台服务器应具有相同的文件集。