大きなファイル(1GB)をダウンロードする必要があります。 Linuxを実行している複数のコンピューターにもアクセスできますが、それぞれが管理ポリシーにより50kB /秒のダウンロード速度に制限されています。
このファイルを複数のコンピューターにダウンロードして配布し、すべてのセグメントがダウンロードされた後にそれらをマージして、より速く受信できるようにするにはどうすればよいですか?
共通プロトコルHTTP、FTPおよびSFTPは範囲要求をサポートしているため、ファイルの一部を要求できます。これにはサーバーのサポートも必要なので、実際には機能しない場合があります。
curl
と-r
または--range
オプションを使用して範囲を指定し、最終的にファイルをcat
tingすることができます。例:
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 man page を参照してください。
さらに、sshとtmuxを利用して、複数のサーバーでのダウンロードの実行と追跡を容易にすることができます。
1ギガバイトのファイルを1秒あたり50キロバイトでロードするには、約5.5時間かかります。
パーシャルを取得するために複数のコンピューターを調整する作業により、時間を節約できるようです。
あなたはbittorrentを見て、ピアエクスチェンジを介した転送と共にウェブシーディングを利用できます。各クライアントは、ローカルエリアネットワーク(LAN)でピースを受信し、完成したピースを共有できます。各コンピューターで同じ1 GBのファイルが作成されますが、部分のマージは自動化されています。