我有 ServerA 和 ServerB,ServerB 是从 ServerA 的快照创建的。
我希望能够在 ServerA 上进行更改(配置、安装的程序、文件、数据库更改等),然后在准备好时将这些更改推送到 ServerB。
从 ServerA 运行以下命令:
rsync -avz -e ssh root@ServerB:/
我被告知的第一件事是:
警告:'ServerB' 的 RSA 主机密钥与 IP 地址 '216.119.xxx.xxx' 的密钥不同 /root/.ssh/known_hosts:1 中 IP 的密钥不正确 /root/.ssh/known_hosts:2 中主机密钥匹配 您确定要继续连接(是/否)吗?
我输入 yes 并按回车键。系统提示我输入 root@ServerB 的密码,然后列出几个文件并结束此操作:
发送 7821 字节 接收 1616926 字节 47094.12 字节/秒 总大小为 140739067508690 加速为 86622143.33 rsync 警告:某些文件在传输之前消失(代码 24)在 main.c(1526) [generator=3.0.7]
但它没有同步。
我特意将一个文件放在 ServerA 上的 /var/www/sync_test_file 中,之后(我希望该文件现在位于 ServerB 上,但是)ServerB 中没有这样的文件
我做错了什么吗?此外,今天是我第一次使用 rsync。
答案1
我应该警告你,像你的例子那样从文件系统的根目录进行同步是危险的(你将覆盖可能不应该被覆盖的系统特定文件)并且可能会非常慢(rsync 必须通过遍历整个树结构来构建文件列表)。
您的 rsync 命令应该同时指定源和目标。
在服务器A上:
rsync -avze ssh / root@serverB:/
您看到的 RSA 主机密钥警告表明 root@ServerA 在某个时候知道了 ServerB,并且 ServerB 的 IP 地址从那时起已经更改。SSH 会警告您这一点,因为您可能无意中通过恶意系统发送/代理了您的数据。如果您确定没有,您可以通过编辑 /root/.ssh/known_hosts 并删除 ServerB 的旧行来删除有问题的主机密钥。
您从 rsync 收到的另一个错误(关于文件消失)意味着在 rsync 生成增量文件列表并实际发送其中一个文件的内容时,一个或多个文件消失(删除/移动)。当您从非只读/快照文件系统同步时,可能会发生这种情况。对于您正在进行的同步类型,如果您的文件系统或卷管理器支持快照,那么您可以在某个时间点拍摄文件系统的快照并进行同步,而不必担心文件在同步期间被删除或移动。