私はグフランの勧告を試みaxel
ましたが、それは私を非常に失望させました。私の目標は、CPUとハードディスクを占有し、8コアMac Proでもシステム全体の速度を低下させるCLIの代替品を見つけることでした。私はまた、マルチスレッドの置き換えたかったのと、いないこれらの複数のインスタンスを実行するスクリプトのいくつかのその場しのぎを。それで、私はさらに検索して、今考えているものが究極の最新のマルチスレッドCLIダウンローダーであるaria2であることを見つけました。私が抱えていた大きな問題は、SSLを介してファイルをダウンロードする「偽造」でした。私はそれをやってそれをキャッチしました。通常どおりリンクをダウンロードしていましたDownThemAll
wget
curl
axel
tcdump
https
http
。それは本当に私を怒らせ、もし私がチェックしなければ、私は誤った安心感を持っていただろう。この深刻なセキュリティ侵害について多くの人が知っているとは思えません。に戻るとaria2
、他のダウンローダーよりも高度です。HTTP(S)、FTP、BitTorrent、およびMetalinkプロトコルをサポートし、マルチプラットフォームであり、ダウンロードゲリラです。DTAとは異なり、CPUまたはハードディスクに負荷をかけることなく、ISPの帯域幅を最大限に活用します。マニュアルページは巨大です。その多くのオプションのうちのいくつかを使用することはありません。ああ、ところで、私はSSLのパフォーマンスを確認しましtcdump
たが、偽物ではなく、しっかりしています。DTAの動作を模倣するスクリプトを作成しましたが、便利ではありません。
最大帯域幅を取得するために使用する基本的なコマンドは
aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL
-c
中断された場合にダウンロードの継続を許可し、サーバーごとに最大10接続-x 10
を-s 10
許可し、-d "mydir"
ファイルをディレクトリに出力しますmydir
。
aria2files.sh
:
#!/bin/bash
filename="$1" # get filename from command line argument
while read -r line
do
if [ "$line" ] # skip blank lines
then
if [[ "$line" =~ (https?|ftp)\:\/\/ ]] # line contains a URL, download file
then
echo "URL: '$line'"
aria2c --file-allocation=none -c -x 10 -s 10 -d "$currdir" "$line"
else # line contains a directory name, create directory if not already present
echo "Directory: '$line'"
currdir="$line"
if [ ! -d "$currdir" ]
then
mkdir -p "$currdir" # '-p' enables creation of nested directories in one command
fi
fi
fi
done < "$filename"
次の形式のテキストファイルを読み取ります。
files.txt
:
dierctory 1
url1
url2
…
directory 2/subdirectory/sub-subdirectory/…
url3
url4
…
…
…
スクリプトはコマンドラインからファイル名を読み取ります。
aria2files.sh files.txt
ディレクトリを作成し、それらにダウンロードします。2番目の例に示すように、ネストされたディレクトリを作成できます。
詳細については、URLからテキストファイルにリストされている指定のディレクトリにファイルをダウンロードするBashスクリプトを参照してください。