我有两台FreeBSD机器, 一个是video数据,另一个是第一个备份。 在这一点上,我已经有了4TB的数据。 我一次添加几个文件到video服务器,并计划通过ssh使用rsync来使备份机保持最新状态。
我做了最初的大型备份,两台机器连接到实验室的同一子网,使用rsync没有任何问题。 然后,当我将备份机器移到异地(但仍然在大学networking上)时,我尝试进行同步,而不更改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连接超时有关,或者与此有关,但是不清楚如何诊断问题的原因。
看起来好像你的连接已经build立,数据已经被传输了,所以似乎这个问题与你的known_hosts或build立连接有关。
如果两台计算机之间有一个NAT,而rsync需要计算一个大文件的校验和,那么计算校验和所需的时间似乎可能会超过连接转换的时间长度保存在状态表中。 我会试图在机器上添加一个像这个ServerAliveInterval 60这样的选项来作为ssh客户端来强制发送。
您是否尝试过,如同运行rsync的用户,从备份服务器到新服务器的服务器?
既然你已经移动了服务器,现在SSH会抱怨服务器标识已经改变,或者会要求确认一个新的服务器标识。 正如Cry Havok所说,你必须作为rsync用户ssh并确认更改(你可能需要编辑 .ssh/known_hosts文件并删除违规密钥)。
如果可以的话,你应该尝试rsync w / o ssh,也就是运行rsync守护进程并尝试使用它,所以你可以在这个时候排除一个variables。