GNU/Linux >> Linux の 問題 >  >> Linux

複数のコンピューターに大規模なダウンロードを配布する方法は?

大きなファイル(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を活用して、複数のサーバーでのダウンロードの実行と追跡を容易にすることができます。


Linux
  1. SSH経由でファイルをダウンロードおよびアップロードする方法

  2. wget vs curl:wget と curl を使用してファイルをダウンロードする方法

  3. Apache でファイル ダウンロード サイズの制限を増やす方法

  1. ファイルの行をループする方法は?

  2. 公開鍵を使用してopensslで大きなファイルを暗号化する方法

  3. プロキシを永続的に使用するように curl を設定するにはどうすればよいですか?

  1. ファイルに複数の行を追加するにはどうすればよいですか?

  2. cURL を使用して GitHub から tarball をダウンロードするにはどうすればよいですか?

  3. SSHを使用してサーバーからファイルをダウンロードするには?