在不良连接上传输大文件时,Rsync挂起

一直有问题通过一个非常糟糕的连接(我试图上传文件在云服务器上)通过rsync传输文件。

大概一分钟左右,rsync就会挂起。 这是我试图执行上传的方式:

rsync -avz --progress -e "ssh" ~/target.war root@my-remote-server:~/ 

没有错误信息或其他信息。 它只是挂起显示像这样的东西:

 7307264 14% 92.47kB/s 0:07:59 

据我所知,ping远程terminal似乎不会丢包。

我的本地机器是Mac。

如何克服这个问题的任何帮助将是很好的。 谢谢。

如果不使用-z选项,则可以将-C添加到ssh命令中(如果您必须进行压缩)(否则-e ssh部分不需要,因为这是默认设置)。

由于我们不知道连接问题的原因,我可以build议rsync的 – --partial选项。 它只是能够重新启动中断的下载/上传。

--partial
默认情况下,如果传输中断,rsync将删除任何部分传输的文件。 在某些情况下,更希望保留部分传输的文件。 使用–partial选项告诉rsync保留部分文件,该文件应该使文件的其余部分更快地传输。

如果你想避免长时间连接的可能性,你可以使用--timeout选项:

--timeout=TIMEOUT
该选项允许您设置最大I / O超时值。 如果没有数据传输指定的时间,那么rsync将退出。 缺省值是0,表示没有超时。

我更喜欢把这两个选项混合在一起,当我从rsync命令中得到nonzero的返回码时,重新上传/下载。

一些示例rsync返回码:

  23 Partial transfer due to error 24 Partial transfer due to vanished source files 30 Timeout in data send/receive