服务器迁移后,通过 ssh 进行 rsync 备份失败

服务器迁移后,通过 ssh 进行 rsync 备份失败

我设置了两台 FreeBSD 机器;一台提供视频数据,另一台用于备份。目前,我拥有大约 4TB 的数据。我每次向视频服务器添加几个文件,并计划使用 rsync over ssh 来使备份机器保持最新状态。

我使用 rsync 进行了初始的大型备份,将两台机器连接到实验室的同一子网,没有任何问题。然后,当我将备份机器移出现场(但仍在大学网络上)时,我尝试同步,除了 IP 之外没有更改任何内容(因为机器现在位于不同的子网上),并收到以下错误:

2010/03/22 15:55:21 [1260] rsync: connection unexpectedly closed (6340840244 bytes received so far) [receiver]
2010/03/22 15:55:21 [1260] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [receiver=3.0.7]
2010/03/22 15:55:21 [1258] rsync: connection unexpectedly closed (60 bytes received so far) [generator]
2010/03/22 15:55:21 [1258] rsync error: unexplained error (code 255) at io.c(601) [generator=3.0.7]

处理备份的脚本没有改变,调用它的 crontab 也没有改变。有人知道是什么原因导致的故障吗?我的印象是它可能与 ssh 连接超时或类似问题有关,但我并不完全清楚如何诊断问题的原因。

答案1

看起来您的连接已经建立并且数据已经传输,因此看起来问题似乎与您的 known_hosts 或建立连接无关。

如果两台计算机之间存在 NAT,并且 rsync 需要计算大型文件的校验和,那么计算校验和所需的时间可能会超过连接转换在状态表中保存的时间长度。我很想在充当ServerAliveInterval 60ssh 客户端的机器上添加这样的选项,以强制发送保持活动。

答案2

您是否尝试过以运行 rsync 的用户身份从备份服务器通过 ssh 连接到新位置的服务器?

答案3

由于您已移动服务器,现在 SSH 会抱怨服务器身份已更改或要求确认新的服务器身份。因此,正如 Cry Havok 所说,您必须以 rsync 用户身份进行 ssh 并确认更改(您可能必须编辑文件.ssh/known_hosts并删除有问题的密钥)。

如果可以,您应该尝试不使用 ssh 的 rsync,即运行 rsync 守护程序并尝试使用它,这样您就可以一次排除一个变量。

相关内容