Download

如何在多台電腦上分發大量下載?

  • June 25, 2016

我需要下載一個大文件(1GB)。我還可以訪問多台執行 Linux 的電腦,但每台電腦的下載速度都被管理員政策限制為 50kB/s。

如何在多台電腦上分發下載此文件並在所有段下載後合併它們,以便我可以更快地接收它?

常見的協議 HTTP、FTP 和 SFTP 支持範圍請求,因此您可以請求文件的一部分。請注意,這也需要伺服器支持,因此它在實踐中可能有效,也可能無效。

您可以使用curland -ror--range選項來指定範圍並最終cat將文件組合在一起。例子:

curl -r 0-104857600         -o distro1.iso 'http://files.cdn/distro.iso'
curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'
[…]

最終,當您收集各個部分時,您將它們連接起來:

cat distro* > distro.iso

您可以通過以下選項獲取有關文件的更多資訊,包括其大小--head

curl --head 'http://files.cdn/distro.iso'

您可以檢索具有開放範圍的最後一個塊:

curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso'

閱讀curl 手冊頁以獲取更多選項和解釋。

您可以進一步利用 ssh 和 tmux 來簡化執行和跟踪多台伺服器上的下載。

引用自:https://unix.stackexchange.com/questions/153011