将 rsync 分布到多个网络接口上

将 rsync 分布到多个网络接口上

我想通过两个慢速网络连接传输一个大文件以节省时间。

一个想法是分割文件,将各部分 rsync 到服务器,然后在那里将它们连接起来。因此,对于一个 1GB 的文件

split -b 500m file 
rsync --address <eth0> file.000 server:~/ & \
rsync --address <eth1> file.001 server:~/
ssh server cat file.001 >> file.000; mv file.000 file
// run rsync on the complete file again to make sure it worked
rsync file server:~/

在我看来,这很笨拙。有没有更优雅的方法来做到这一点?

答案1

我曾经做过的事:

在每个链路上实施 2 个 VPN 或 IP 隧道,并使用 Linux 绑定功能将它们粘合在一起。我使用 OpenVPN 通过 UDP 和极快的加密来实现这一点。这样,您就不需要 2 个 rsync,您将获得一个更快的单个 rsync。

为了加快速度,请使用非常强大的压缩和比 SSH 开销更少的协议,也许可以使用 rsync 的一些 UDP 替代方案(只需在 Google 上搜索即可)。

相关内容