私の出発点は この質問 です。現在、aria2はファイルをダウンロードしていますが、思ったほど速くはありません(i7、ギガビット接続、AC-wifiを搭載したMacbook Proでこれを実行しています。チェーンのこれらのリンクを最大限に活用していません。 。)。
これらのスイッチでaria2を使用します
-x 16 -s 1
ファイルが小さいので、ダウンロードごとに複数のソケット(-s 1)を開く理由はありません。ただし、複数のファイルを並行してダウンロードすると(-x 16. 16が最大ですよね?)、全体的な速度が上がるはずですよね。
それにもかかわらず、出力ログを読んだとき、ダウンロードは並行していないようです。アリアの使い方に何か足りないものはありますか?
それとも、ボトルネックとなるのはariaへのURLのフィードですか(find。-tfを使用し、その結果を使用して、文字列連結を使用してariaにフィードされるURLを構築します)?
aria2c
にダウンロードを1つだけ送信する場合、およびファイルサイズが小さい場合、複数の接続を開くことはあまり役に立ちません。ただし、aria2c
を使用すると、複数のxargs -P <num>
コマンドを簡単に並行して実行できます。
-P
値がサーバーで許可されている値を超えていないことを確認してください。許可されていない場合、サーバーはエラーを返します。
find . -type f -printf '%P\n' \
| xargs -I{} -P6 aria2c -x 1 -s 1 "https://web.archive.org/save/https://{}"
または、xargs
にすべてのURLを1つのaria2c
呼び出しに追加させます。
find . -type f -exec 'https://web.archive.org/save/https://%P\n' \
| xargs aria2c -x 16 -s 1
しかし、パイプとfind
を使用する代わりに、aria2
の入力としてxargs
からファイル記述子を作成するのが最善のオプションだと思います。
aria2c -x 16 -s 1 -i <(find . -type f -printf 'https://web.archive.org/save/https://%P\n')