複数のコンピュータに大量のダウンロードを展開するにはどうすればよいですか?

複数のコンピュータに大量のダウンロードを展開するにはどうすればよいですか?

大容量ファイル(1GB)をダウンロードする必要があります。また、Linuxを実行している複数のコンピュータにアクセスできますが、管理ポリシーによっては、コンピュータあたりのダウンロード速度が50kB / sに制限されます。

このファイルを複数のコンピュータに分散させ、すべてのフラグメントがダウンロードされた後にマージしてより早く受信できるようにするにはどうすればよいですか。

答え1

一般的なプロトコルである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'

読むカールマンページより多くのオプションと説明を見るには

SSHとtmuxをさらに活用して、複数のサーバーでダウンロードを簡単に実行および追跡できます。

答え2

1GBファイルを1秒あたり50KBにロードするのに約5.5時間かかります。

コンテンツの一部を得るために複数のコンピュータを調整すると時間が節約されるようです。

BitTorrentを見て、P2P交換を使用してネットワークシーディングとストリーミングを利用できます。各クライアントはローカルエリアネットワーク(LAN)を介してフラグメントを受信し、完成したフラグメントを共有できます。各コンピュータに同じ1GBファイルが作成されますが、部分的なマージは自動的に行われます。

関連情報