我有两个 Linux 机器,我想让它们保持同步。我看到选项 -avz 将远程与本地同步,但新的本地文件不会被推送。我该怎么做?
答案1
rsync 是单向同步,而您似乎想要双向同步(两个位置的文件都可以更改)。还有其他工具可以做到这一点——齐奏就是其中之一。
- 与简单的镜像或备份实用程序不同,Unison 可以处理分布式目录结构的两个副本的更新。不冲突的更新会自动传播。冲突的更新会被检测并显示。
- Unison 可以在任何连接到互联网的机器之间工作,通过直接套接字链接或通过加密的 ssh 连接进行通信。它对网络带宽非常谨慎,并且在 PPP 连接等慢速链接上运行良好。使用类似于 rsync 的压缩协议可以优化小更新到大文件的传输。
- Unison 具有很强的故障恢复能力。它始终小心地保持副本和其私有结构处于合理状态,即使在异常终止或通信故障的情况下也是如此。
- Unison 是免费的;完整源代码可根据 GNU 公共许可证获得。
答案2
rsync(尽管名为“sync”)实际上只是单向的。您可以让它删除目标目录中源目录中不存在的文件,但您不能同时双向推送和拉取文件(您只需再次运行 rsync,将源目录和目标目录交换即可;我还建议您选择-u
只有较新的文件才能覆盖较旧的文件)。
也可以看看:Rsync、双向同步和同步文件删除操作