我有这样一个情景:我要从服务器 A 下载一个巨大的文件夹到本地大带宽服务器(大约 2T,文件夹中每个文件大约 10G ),但是无奈一个 IP 限速 10Mbps,所以我想要开启多个虚拟机,每个虚拟机拿不同 ip,同时对这一个文件夹进行同步,如果不对这个文件夹进行切分可以办到吗?或者有没有什么工具可以实现
rsync + 文件名正则呢 ?
按文件名或者子文件夹进行同步
我记得是由参数存在的就不复制,但是还是要扫描整个文件夹,你这么大估计也很慢
大文件没必要用 rsync,直接装个 nginx,然后把目录、文件名列出来,加上 IP 、端口,组装成完整网址,然后迅雷批量下载还方便一些。
为啥迅雷批量下载能规避限速的问题呢
也不一定要用迅雷,我说用迅雷只是举个例子,你完全可以用多台虚拟机进行 wget
我能想到的也是 http 方便点, 配合 aria2 多线程拖,限速的问题可以套个 cdn,例如 cf(也许还要加一些魔法)
魔法是指 cf 自选 ip
rsync 本身并不适合用来同步单个超大文件。。。
换个思路吧,服务器 A 上生成文件列表,然后切成几个文件,分发给不同的 IP 去下载( rsync 可以从文件列表里读下载文件。)
/t/737124
很早提问过了 好像不太行
2T/10G=200 个,
可以先压缩再传,另外你考虑了服务器 A 的带宽限制吗,还有服务器 A 上有其它服务在运行吗,要注意不要因为带宽占满问题,影响其它服务。下载方法的话,太多了,需要考虑断点续传,因为文件太大了。
https://stackoverflow.com/questions/24058544/speed-up-rsync-with-simultaneous-concurrent-file-transfers