大きなファイル(1GB)をダウンロードする必要があります。 Linuxを実行している複数のコンピューターにもアクセスできますが、管理者ポリシーにより、それぞれのダウンロード速度は50kB/sに制限されています。
このファイルのダウンロードを複数のコンピューターに配布し、すべてのセグメントがダウンロードされた後でそれらをマージして、より速く受信できるようにするにはどうすればよいですか?
承認された回答:
一般的なプロトコルHTTP、FTP、SFTPは範囲リクエストをサポートします 、ファイルの一部を
リクエストできます。これにはサーバーのサポートも必要であるため、
実際には機能する場合と機能しない場合があります。
curl
を使用できます および-r
または--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を活用して、複数のサーバーでのダウンロードの実行と追跡を容易にすることができます。