获取两个服务器路径(一个远程)之间的差异并同步差异

获取两个服务器路径(一个远程)之间的差异并同步差异

我想在两个 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 因任何原因中断,只需再次启动相同的命令,它或多或少会在中断的地方恢复。

相关内容