rsync连接closures一个小时左右

我在cron中运行一些命令,通过两个数据中心进行rsync。 数据中心之间的连接速率约为1Mbps。 我注意到,rsync保持大约2.7GB到2.9GB的传输数据,这可能相当于大约一个小时或更长的连接。 我知道在过去我们的防火墙被configuration为closures已经打开了一个多小时的空闲连接。

但是,一个rsync传输真的是空闲? 我能做些什么来解决这个问题?

错误:

rsync:连接意外closures(到目前为止收到2987596424个字节)[receiver]

rsync错误:在io.c(605)[receiver = 3.0.9]的rsync协议数据stream(代码12)

rsync:连接意外closures(到目前为止收到523个字节)[生成器]

rsync错误:在io.c(605)[generator = 3.0.9]的rsync协议数据stream(代码12)

我已经在我的〜/ .ssh / config(但也许这些值需要增加?):

Host * ServerAliveInterval 60 ServerAliveCountMax 15 

在rsync转移期间闲置networking连接:

是的, rsync可以保持安静,在磁盘读取,而他们没有数据包发送…

你说。 我们的防火墙被configuration为closures已经打开了一个多小时的空闲连接,但是连续的空闲持续时间没有

rsync进程,根据之前计算的校验和读取整个文件以search数据包之间的差异。

虽然两端文件没有区别,但是直到find差异,它们之间可能没有交换。

在我的桌面和他的备份之间有一个表示一个rsync运行的小graphics:

跟踪rsync网络流量

没有数据的情况下 ,我们可能会看到几秒钟:

 TIME BLOCKS BYTES IN OUT IN OUT ... Jul 28 15:00:07 2013 449 41 23443 1526403 Jul 28 15:00:08 2013 0 0 0 0 Jul 28 15:00:09 2013 0 0 0 0 Jul 28 15:00:10 2013 143 182 21348 1123986 Jul 28 15:00:11 2013 112 142 6966 523326 Jul 28 15:00:12 2013 31 30 1942 1890 Jul 28 15:00:13 2013 30 28 1853 88038 Jul 28 15:00:14 2013 0 0 0 0 Jul 28 15:00:15 2013 57 66 3954 38301 ... 

解决方法:

作为一种解决方法,您可以使用基于套接字的ssh共享

首先运行一个普通的ssh来挂起socket和连接

 ssh -M -o ControlPath=$HOME/.ssh/socket_test destHost ping -n localhost 

比在另一个窗口:

 rsync -e 'ssh -e none -S $HOME/.ssh/socket_test' /src/file destHost:/dst/file 

通过这种方式,只有一个连接将用于两个ssh会话ping将确保(很多)连续的stream量,比rsync可以安静地工作,使用相同的networking连接。