![获取两个服务器路径(一个远程)之间的差异并同步差异](https://linux22.com/image/724992/%E8%8E%B7%E5%8F%96%E4%B8%A4%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B7%AF%E5%BE%84%EF%BC%88%E4%B8%80%E4%B8%AA%E8%BF%9C%E7%A8%8B%EF%BC%89%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%E5%B9%B6%E5%90%8C%E6%AD%A5%E5%B7%AE%E5%BC%82.png)
我想在两个 CentOS 服务器上按需(非自动)同步两个路径。
目标是如果文件不同,则将文件从服务器 A 发送到服务器 B。文本文件中的数据约为 1GB(因此有很多小文件(.js、.php 等)。我是否需要md5deep
在两台服务器上使用类似的程序并在每次运行时比较差异,或者有没有更聪明的方法来做到这一点?
(我不介意第一次运行是否很慢而在第一次索引后变得更快,但我不知道是否存在这样的情况)
答案1
Rsync 确实是解决此问题的办法,在 Google 中输入“man rsync”就足以找到详细信息。
但更具体地说,使用
rsync -az --delete /dir/on/server-a/ server-b:/target/on/server-b
配置 SSH 密钥,以便服务器 a 的 ssh 可以登录到服务器 b,而无需输入密码。选项 -z 将压缩数据,文本文件将受益于此压缩。Rsync 将仅传输已修改的文件。即使对于已修改的文件,它也会尝试查找未更改的部分,而不会再次传输它们。如果 rsync 因任何原因中断,只需再次启动相同的命令,它或多或少会在中断的地方恢复。