Aria2
プロジェクトの ホームページ より:
- aria2 は軽量なマルチプロトコル&マルチソースのコマンドラインダウンロードユーティリティです。HTTP/HTTPS, FTP, BitTorrent, Metalink をサポートしています。aria2 はビルトインの JSON-RPC と XML-RPC インターフェイスで操作することができます。
インストール
公式リポジトリから aria2 をインストールしてください。
aria2 をデーモンとして使うには aria2-systemd もインストールしてください。
実行
aria2 パッケージの実行ファイルの名前は aria2c
です。後方互換性を保つために昔の名前がそのまま残っています。
設定
aria2.conf
aria2 はデフォルトで $XDG_CONFIG_HOME/aria2/aria2.conf
を確認してグローバルな設定オプションを設定します。--conf-path
スイッチを使うことで挙動を変更することが可能です:
- 設定ファイル
/file/aria2.rapidshare
に指定したオプションをつかってaria2.example.rar
をダウンロード
$ aria2c --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar
$XDG_CONFIG_HOME/aria2/aria2.conf
が存在していて /file/aria2.rapidshare
で指定したオプションを優先させたい場合、--no-conf
スイッチをコマンドに付け加えます:
- デフォルトの設定ファイルを使用せず設定ファイル
/file/aria2.rapidshare
に指定したオプションを使ってaria2.example.rar
をダウンロード
$ aria2c --no-conf --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar
$XDG_CONFIG_HOME/aria2/aria2.conf
が存在せず設定オプションの管理を簡単にしたい場合:
$ touch $XDG_CONFIG_HOME/aria2/aria2.conf
サンプル .bash_alias
alias down='aria2c --conf-path=${HOME}/.aria2/aria2.conf' alias rapid='aria2c --conf-path=/file/aria2.rapidshare'
サンプル aria2.conf
continue dir=${HOME}/Desktop file-allocation=none input-file=${HOME}/.aria2/input.conf log-level=warn max-connection-per-server=4 min-split-size=5M on-download-complete=exit
上記の設定は以下を実行するのと同じです:
$ aria2c dir=${HOME}/Desktop file-allocation=none input-file=${HOME}/.aria2/input.conf on-download-complete=exit log-level=warn FILE
オプションの説明
continue
- コントロールファイルが存在する場合に部分的にダウンロードされたファイルからダウンロードを続行する。
dir=${HOME}/Desktop
- ダウンロードしたファイルを
~/Desktop
に保存。 file-allocation=none
- ダウンロードを始める前にディスク容量を予め予約しない (デフォルト: prealloc) 1。
input-file=${HOME}/.aria2/input.conf
~/.aria2/input.conf
に書かれた、タブあるいは改行で区切られた URI のリストをダウンロード。log-level=warn
- ログレベルを警告やエラーだけを出力するように設定 (デフォルト: debug)。
max-connection-per-server=4
- サーバーごとの接続の最大数を4に設定 (デフォルト: 1)。
min-split-size=5M
- 容量が 2*5MB = 10MB よりも大きい場合にファイルを分割 (デフォルト: 20M)。
on-download-complete=exit
- ダウンロードセッションが完了したら
exit
コマンドを実行してシェルを終了。
サンプル入力ファイル #1
- 2つのソースから
aria2-1.10.0.tar.bz2
を~/Desktop
にダウンロードしてaria2-1.10.0.tar.bz2
にマージ
http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2 http://sourceforge.net/projects/aria2/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2
サンプル入力ファイル #2
aria2-1.9.5.tar.bz2
をダウンロードしてaria2.old.tar.bz2
として/file/old
に保存aria2-1.10.0.tar.bz2
をダウンロードしてaria2.new.tar.bz2
として~/Desktop
に保存
http://aria2.net/files/stable/aria2-1.9.5/aria2-1.9.5.tar.bz2 dir=/file/old out=aria2.old.tar.bz2 http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2 out=aria2.new.tar.bz2
補足
- 1
--file-allocation=falloc
- ext4 (エクステントをサポート), btrfs, xfs などの巨大なファイル (GB) を一瞬に割り当てられる新しいファイルシステムで推奨。ext3 などの古いファイルシステムで falloc を使ってはいけません。prealloc で標準的なアロケーションと同じくらいの時間がかかって aria2 のプロセスがロックされてダウンロードに進めなくなります。
http-user=USER_NAME http-passwd=PASSWORD allow-overwrite=true dir=/file/Downloads file-allocation=falloc enable-http-pipelining=true input-file=/file/input.rapidshare log-level=error max-connection-per-server=2 summary-interval=120
オプションの説明
http-user=USER_NAME
- パスワードで保護されているログインをするために HTTP ユーザー名を USER_NAME に設定。全ての URI に適用されます。
http-passwd=PASSWORD
- パスワードで保護されているログインをするために HTTP パスワードを PASSWORD に設定。全ての URI に適用されます。
allow-overwrite=true
- コントロールファイルが存在しない場合にダウンロードをやり直す (デフォルト: false)。
dir=/file/Downloads
- ダウンロードしたファイルを
/file/Downloads
に保存。 file-allocation=falloc
- posix_fallocate() を呼び出してダウンロードが始まる前にディスク容量を確保 (デフォルト: prealloc)。
enable-http-pipelining=true
- HTTP/1.1 パイプラインを有効にしてネットワークの遅延と負担を減らす (デフォルト: false)。
input-file=/file/input.rapidshare
/file/input.rapidshare
に指定された、タブあるいは改行で区切られた URI のリストをダウンロード。log-level=error
- エラーだけを出力するようにログレベルを設定 (デフォルト: debug)。
max-connection-per-server=2
- サーバーごとの接続の最大数を2に設定 (デフォルト: 1)。
summary-interval=120
- 120秒ごとにダウンロードの進捗を出力 (デフォルト: 60) 3。
補足
aria2.rapidshare
にユーザー名とパスワードを記述するので、ファイルのパーミッションは 600 などに設定することを推奨します:
$ cd /file $ chmod 600 /file/aria2.rapidshare $ ls -l total 128M -rw------- 1 arch users 167 Aug 20 00:00 aria2.rapidshare
- 3
summary-interval=0
- ダウンロードの進捗の出力を控えめにすることで全体のパフォーマンスを改善できます。ログは
log-level
オプションで指定した値に合わせて出力されます。
サンプル aria2.bittorrent
bt-seed-unverified max-overall-upload-limit=1M max-upload-limit=128K seed-ratio=5.0 seed-time=240
オプションの説明
bt-seed-unverified=false
- シードする前にファイルのハッシュを確認しない (デフォルト: true)。
max-overall-upload-limit=1M
- アップロードの最大速度を 1MB/秒に設定 (デフォルト: 0)。
max-upload-limit=128K
- torrent ごとのアップロードの最大速度を 128K/秒に設定 (デフォルト: 0)。
seed-ratio=5.0
- 共有比が 5.0 に達するまで完了した torrent をシードする (デフォルト: 1.0)。
seed-time=240
- 240分間は完了した torrent をシードする。
サンプル aria2.daemon
以下の設定を使って Aria2 をサービスとして起動することができます。下に記載しているフロントエンドと組み合わせて使うこともできます。rpc-user と rpc-pass は非推奨となっていますが、ほとんどのフロントエンドはまだ新しい認証に移植されていません。ユーザーやパスワード、Download ディレクトリは忘れずに変更してください。
continue daemon=true dir=/home/aria2/Downloads file-allocation=falloc log-level=warn max-connection-per-server=4 max-concurrent-downloads=3 max-overall-download-limit=0 min-split-size=5M enable-http-pipelining=true enable-rpc=true rpc-listen-all=true rpc-user=rpcuser rpc-passwd=rpcpass
フロントエンド
ウェブ UI
- YaaW — HTML/CSS/Javascirpt だけで書かれた Yet Another Aria2 ウェブフロントエンド。
- Webui — aria2 の Html フロントエンド。
- aria2rpc —
aria2c
のリモートインスタンスに接続するコマンドラインツール。aria2c
がインストールされている場合/usr/share/doc/aria2/xmlrpc/aria2rpc
下にあります。
他の UI
- aria2fe — CLI ベースの aria2 ダウンロードユーティリティの GUI。
- Diana — aria2 のコマンドラインツール。
- https://github.com/baskerville/diana || diana-gitAUR[リンク切れ: パッケージが存在しません]
- downloadm — aria2c をバックエンドとして用いるダウンロードアクセラレータ/マネージャ。
- http://sourceforge.net/projects/downloadm/ || downloadmAUR[リンク切れ: アーカイブ: aur-mirror]
- eatmonkey — aria2 で動作する Xfce のダウンロードマネージャ。
- karia2 — aria2 ダウンロードマネージャの QT4 インターフェイス。
- uGet — プラグインを使って aria2 をバックエンドとして利用できる機能豊富な GTK+/CLI ダウンロードマネージャ。
- yaner — aria2 ダウンロードマネージャの GTK+ インターフェイス。
- http://iven.github.com/Yaner || yaner-gitAUR[リンク切れ: アーカイブ: aur-mirror]
シェルの設定ファイルに diana による監視機能を追加すると便利です:
da(){ watch -ctn 1 "(echo -e '\033[32mGID\t\t Name\t\t\t\t\t\t\t%\tDown\tSize\tSpeed\tUp\tS/L\tTime\033[36m'; \ diana list| cut -c -112; echo -e '\033[37m'; diana stats)" }
ヒントとテクニック
パッケージをインストールしないでダウンロード
以下のコマンドを使って下さい:
# pacman -Sp packages | aria2c -i -
pacman -Sp
はパッケージの URL を標準出力に出力します。それから |
で次のコマンドにパイプしています。そして aria2c -i -
の -i
スイッチによって aria2c は指定されたファイルからファイルの URL をダウンロードします。-
が指定されているため、URL は標準入力から読み込まれます。
pacman XferCommand
aria2 は pacman パッケージマネージャのデフォルトのダウンロードマネージャとして使うことができます。詳しくは ArchWiki の pacman のパフォーマンスの向上を見て下さい。
カスタム最小ビルド
不必要な機能やプロトコルを削除することでアプリケーションのレスポンスを改善することができます。カスタムビルドで外部ライブラリを削除することで更なる向上が望めます。利用可能なオプションは ./configure --help
で確認できます。詳しくは Arch Build System のページを見て下さい。
システムの起動時に aria2c を起動
以下の systemd サービスファイルを保存して、ユーザー名と設定パスを必要に応じて修正してください。デーモン化するように設定がなっていることを確認してください (daemon=true
を使用)。
/etc/systemd/system/aria2c.service
[Unit] Description=Aria2c download manager After=network.target [Service] User=aria2 Type=forking ExecStart=/usr/bin/aria2c --conf-path=/home/aria2/.aria2/aria2.daemon [Install] WantedBy=multi-user.target
作成したらサービスを起動・有効化してください。
ユーザーエージェントの変更
サイトによってはユーザーエージェントでリクエストを弾くようになっていることがあり、Aria2 はあまり有名なダウンローダーではないため、Aria のユーザーエージェントを他の有名なダウンローダーやブラウザにすると良いかもしれません。以下のように -U
オプションを使います:
$ aria2c -UWget http://some-url-to-download/file.xyz
-UMozilla/5.0
など、何でも好きに設定できます。
makepkg で Aria2 を使う
curl でソースファイルをダウンロードする代わりに Aria2 を使うことができます。以下のように DLAGENTS
変数を変更してください:
/etc/makepkg.conf
[...] DLAGENTS=('ftp::/usr/bin/aria2c -UWget -s4 %u -o %o' 'http::/usr/bin/aria2c -UWget -s4 %u -o %o' 'https::/usr/bin/aria2c -UWget -s4 %u -o %o' 'rsync::/usr/bin/rsync -z %u %o' 'scp::/usr/bin/scp -C %u %o') [...]
参照
- aria2 wiki - 公式サイト
- aria2 usage examples - 公式サイト
- aria2c downloader through VPN tunnel - 非公式サイト