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