Download
如何在多台電腦上分發大量下載?
我需要下載一個大文件(1GB)。我還可以訪問多台執行 Linux 的電腦,但每台電腦的下載速度都被管理員政策限制為 50kB/s。
如何在多台電腦上分發下載此文件並在所有段下載後合併它們,以便我可以更快地接收它?
常見的協議 HTTP、FTP 和 SFTP 支持範圍請求,因此您可以請求文件的一部分。請注意,這也需要伺服器支持,因此它在實踐中可能有效,也可能無效。
您可以使用
curl
and-r
or--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 來簡化執行和跟踪多台伺服器上的下載。