将许多大文件上传到远程服务器

将许多大文件上传到远程服务器

我正在创建异地备份,需要进行初始数据加载。目前,大约有 400Gb,上下浮动 10Gb 左右...备份系统正在生成每个大约 4Gb 的文件,还有一些其他较小的相关文件。因此,我需要将所有 400GB 左右的数据传输到远程服务器,但该怎么做呢?最好的方法是什么?

我对服务器有完全的远程访问权限,因此我可以安装任何需要安装的东西。机器本身运行着 Windows、Linux 和 Solaris VM,因此可以使用其中任何一种,而且我家里有 Windows 和 Linux。我家里有 2 个互联网连接,每个连接上传速度为 10Mb/s,因此可以拆分连接数的东西会很方便(有点像 GetRight,但反过来... PutRight?)。

[更新] 我尝试了以下使用 RSync 的选项,但我的工作站和服务器之间只有一个连接。将大文件上传到 Amazon 时,可以选择在本地将它们拆分,然后在服务器端将它们拆分。多个文件也会通过多个连接发送。因此,一个 4Gb 文件可以拆分成 800 个 5Mb 左右的块,然后一次发送 4 个或 8 个,尽可能多地使用您的上传带宽。那么,我该如何自动执行此操作?我可以破解一些东西来做到这一点,并使用 SFTP 发送文件,但是有自动选项吗?

答案1

rsync 很有可能会发挥最佳作用。

rsync -avzP /源用户@主机:/目标

上述语法可用于通过 ssh 复制文件,并允许您在断开连接时从中断处恢复传输。 和-v都是-P可选的,但在您的情况下强烈建议使用。

-v告诉 rsync 将当前文件打印到屏幕上。

-z告诉 rsync 压缩数据。这可以大大提高 WAN 连接的传输速度。

-P告诉 rsync 做两件事:首先,在屏幕上显示进度百分比,与 相同--progress。其次,它会将部分传输的文件保留在服务器上,因此如果断开连接,它会将该部分文件保留在服务器上,以便您可以恢复它。这与--partial

由于它旨在成为异地备份,因此您可以为 rsync 添加许多选项,使其非常强大。如果您愿意,您也可以非常轻松地将其转变为增量备份。

在第二次传输期间,如果任何数据发生了变化,rsync 将只复制最新的更改,而保留其余部分。

相关内容