通过缓慢或不稳定的网络链接进行可靠的文件传输

use*_*721 10 ssh scp upload failsafe

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

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

因此,我正在寻找一种“故障安全”上传解决方案,即使链接失败几分钟或不可靠,该解决方案也能正常工作。

我的想法是:

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

问题:

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

Mic*_*ton 16

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

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

最后,您可以在两台机器之间设置 VPN。这涉及最多的工作,上述任一解决方案都容易得多,但它可以解决网络连接不稳定的问题。正如一些人所指出的,这也可能是片状的。如果 VPN 像 OpenVPN 一样非常积极地重新建立连接,它可以工作,但上述解决方案要好得多。