RSync:如何在两个方向同步?

我想使用rsync 同步两个方向上的两个目录。

我指的是经典意义上的同步( 而不是 rsync手册中的意思):
我想在两个方向更新目录,具体取决于哪个更新

这可以通过rsync完成(最好在Linux方式)
如果不是,还有什么其他解决scheme?

只需运行两次,使用“更新”模式(-u或–update标志)加上-t(复制文件修改时间),-r(用于recursion文件夹)和-v(用于详细输出以查看它是什么这样做):

rsync -rtuv /path/to/dir_a/* /path/to/dir_b rsync -rtuv /path/to/dir_b/* /path/to/dir_a 

这不会处理删除,但我不知道有一个很好的解决scheme,只有定期同步的问题。

你知道Unison File Synchronizer吗?

Unison是Unix和Windows的文件同步工具。 它允许将文件和目录集合的两个副本存储在不同的主机上(或同一主机上的不同磁盘上),分别进行修改,然后通过将每个副本中的更改传播到另一个副本来进行更新。 …

还要注意的是,它是有弹性的失败:

Unison能够应对失败。 即使在exception终止或通信失败的情况下,也要小心地保持副本和自己的私人结构始终处于合理的状态。

谢谢jsight

 rsync -urv --progress dir_a dir_b && rsync -urv --progress dir_b dir_a 

这将导致第一次同步结束后立即发生第二次同步。 在目录结构巨大的情况下,这将节省时间,因为不需要坐在电脑前。 如果结构庞大,请删除详细和进步的东西

 rsync -ur dir_a dir_b && rsync -ur dir_b dir_a 

使用rsync <OPTIONS> [hostname:]source-dir [hostname:]dest-dir

例如:

 rsync -pogtEtvr --progress --bwlimit=2000 xxx-files different-stuff 

将同步xxx文件到不同的东西/ xxx文件。如果不同的stuff / xxx文件不存在,它会创build它 – 即复制它。

-pogtEtv – 只是一堆选项来保存文件元数据,再加上v – verbose和r – recursion

– 进度 – 显示实时同步的进度 – 如果您复制大文件非常有用

--bwlimit=2000 – 设置复制/同步的最大速度(bw =带宽)

当您在本地机器上使用networking时,rsync是非常重要的,您可以使用像cp这样的命令。

祝你好运!

如果您要同时进行同步,并且还要激活删除文件,请使用以下命令

 rsync -u -r --delete dir_a dir_b rsync -u -r --delete dir_b dir_a