通过慢速或不稳定的网络链接可靠地传输文件


8

我需要通过低质量的宽带链接将许多文件传输到服务器。文件很大,每个文件传输大约需要30分钟。

我使用的是scp,但有时会挂起-传输不会因错误而失败,它会继续运行,但是不会再传输任何数据。

因此,我正在寻找一种“故障安全”的上传解决方案,即使该链接在几分钟内失败或不可靠,该解决方案仍将有效。

我的想法是:

  1. 将大文件分成小部分
  2. 上载零件,超时并在失败时重试

问题:

  • 有一个现成的工具可以实现这个想法吗?(没有特别需要的可能是ftp或其他任何东西)
  • 有没有一种方法可以检测scp何时挂起?((即它仍在运行,但不传输数据)

Answers:


15

您可以使用rsync将文件从一台计算机复制到另一台计算机。rsync可以使用ssh作为其基础传输。结合rsync --partial使用脚本如这一个在网络发生故障的情况下,再试一次,你应该能够即使在网络错误的脸部移动文件。

另一种方法是使用,将远程文件系统挂载到本地计算机上sshfs -o reconnect,然后仅对文件进行cp。sshfs / Linux将负责其余的工作。根据一些测试今天我做到了,这似乎是很多比rsync的慢。

最后,您可以在两台计算机之间建立VPN。这涉及最多的工作,并且上述两种解决方案都容易得多,但可以解决网络连接不稳定的问题。而且正如某些人指出的那样,这也可能是片状的。它可以工作,如果VPN是关于重新建立连接非常积极的,因为OpenVPN是,但上述方案要好得多。


1
为了使这项工作,你需要使用--partial标志(或东西意味着--partial--inplace),否则无论何时传输中断,部分转移将被删除,你将不得不重新开始。
womble

Rsync肯定是要走的路...或Windows的robocopy。
Brian Adkins 2012年

VPN如何有效地帮助进行Flakey连接?
EEAA 2012年

VPN软件(例如OpenVPN)可以在后台自动重新连接,透明地连接到在VPN上运行的任何应用程序。
迈克尔·汉普顿

@ErikA我的想法正好-flakey链接上的VPN = flakey始终需要重新启动的VPN。它仅给问题增加了第二个层次,即传输软件必须能够准确地在中断的地方重新开始文件传输。
Fiasco Labs 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.