如何将大文件从一台服务器发送到另一台服务器

如何将大文件从一台服务器发送到另一台服务器

我需要将一个巨大的文件(超过 70GB)从加拿大的一台服务器传输到非洲的另一台服务器。

我试过 FTP,但总是在某个地方断开连接。我猜非洲服务器的网络不稳定,有些文件上传了,但当我打开它时,它已经损坏了。

所以我确实需要一个工具来传输这个大文件:

  1. 利用带宽,这样我就可以尽快上传。
  2. 如果网络不稳定,该工具可以检测到,删除损坏的数据并重新上传。
  3. 我不想上传到其他地方(就像大多数文件共享解决方案一样,上传到他们的服务器并获取一个共享链接)
  4. 我更喜欢一种可以在两台服务器上安装的工具。

两台服务器的操作系统均为 Windows Server 2008 R2。不能使用第三方转账渠道。

答案1

BitTorrent 可能对你来说是一个很好的解决方案。

在原始服务器上创建 torrent,将 torrent 文件传输到目标,然后使用其中一个客户端作为 bittorrent 跟踪器。Bittorrent 将文件分解为可管理的部分,并确保它们全部无误地传输。

显然,创建 torrentfile 会产生一些开销,并且没有群集可以提高您的下载速度,但是如果您处理的是蹩脚的链接,它可能会为您提供很好的服务。

答案2

FTP 很糟糕——它诞生于 20 世纪 80 年代中期,坦率地说,它本应就此消亡。

我可能会从 scp(安全复制)开始,它应该是您最喜欢的 Linux 发行版(包括 Cygwin)上的 openssh 或 openssh-client 包的一部分,或者如果您运行的 Windows 没有 Cygwin,则可作为 PuTTY 包的一部分使用。您需要在目标主机上配置 ssh 服务器,但如果您拥有 root/管理员访问权限(如果没有,事情会变得更加困难),那么这非常简单;一旦您运行了 ssh 服务器,并且可以从源主机访问它,那么只需

 user@source $ scp /path/to/file user@destination:/path/to/receiving/directory

这应该可以很好地满足您的第 1 点,因为 scp 的开销相当低;它肯定可以满足第 2 点,因为它肯定会检测到失败的连接,并且可以(可能)配置或(肯定)编写脚本以根据需要重试多次;它很容易涵盖第 3 点,因为不需要中间主机或服务;它也很好地涵盖了第 4 点,因为您可以在两个主机上安装 ssh 服务器,然后以您喜欢的任何方向传输文件。您还可以免费获得加密,这对您可能有用,也可能没用。

OpenSSH 手册可能是一个很好的起点,如果您最终选择这条路线,我很乐意提供进一步的帮助 - 我在使用 scp/ssh 进行此类传输方面有一些经验(虽然不是从加拿大到非洲或反之亦然,并且不是针对单个文件大小超过 70GB,我承认!)

希望这可以帮助!

答案3

我认为将文件分成几个小文件、传输它们、然后在远程服务器上将它们重新组合在一起是一个好主意。

以下是一个如何拆分和连接的示例(在 Linux 上):http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/

您还应该拥有类似于与远程服务器的 ssh 连接,以便您可以在那里将它们连接起来。

还有一个有用的工具,比如“md5sum”,它可以通过比较哈希值来检查传输的文件是否未发生改变。

您可以编写一个小型 shell 脚本来自动执行某些操作,这样您就可以轻松地传输大量小文件,或者您可以手动完成并尝试使用少量但较大的块...

答案4

我会考虑将文件放到一组 DVD 或 BD-ROM 或 2.5 英寸 HDD 上并通过航空邮寄。

如果您的上传带宽为 1 Mbit/s,则 70 GB 可能需要 6 天才能通过互联网传输。

相关内容