Aria2

提供: ArchWiki
ナビゲーションに移動 検索に移動

プロジェクトの ホームページ より:

aria2 は軽量なマルチプロトコル&マルチソースのコマンドラインダウンロードユーティリティです。HTTP/HTTPS, FTP, BitTorrent, Metalink をサポートしています。aria2 はビルトインの JSON-RPCXML-RPC インターフェイスで操作することができます。

インストール

aria2 パッケージをインストールしてください。

aria2 をデーモンとして使うには aria2-systemd もインストールしてください。

設定

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

サンプル 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
ノート: 上記の aria2.conf の例では、$ HOME 変数が誤って使用されている可能性があります。一部のユーザーは、 aria2 作業ディレクトリに個別の $ {HOME} サブディレクトリを明示的に作成する中括弧の構文を報告しています。このようなディレクトリは、 bash が $ HOME 環境変数と見なすため このようなディレクトリを辿るのは難しいかもしれません。現時点では、 aria 2.conf で絶対パスを使用することをお勧めします。

オプションの説明

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    https://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 プロセスがダウンロードに進むのをロックしている間、標準の割り当てとほぼ同じ時間を消費するためです。

ヒント: 設定オプションの完全なリストは aria2c --help=#all や aria2 の man ページを見て下さい。

サンプル aria2.rapidshare

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 オプションで指定した値に合わせて出力されます。
ヒント: 上記の設定ファイルは Hotfile, DepositFiles などでも使うことができます。
ノート: コマンドラインオプションは設定ファイルで指定したオプションよりも常に優先されます。

サンプル 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 をシードする。
ノート: seed-ratioseed-time の両方が指定されている場合、どちらか片方の条件が満たされた時点でシードは終了します。

サンプル 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

フロントエンド

ノート: フロントエンドで設定を変更しても aria2 自体の設定には影響しません。カスタム設定が作られていたとしても別の UI が aria2 の設定を再利用するとは限りません。パラメータが正しく設定されているかどうかは選択したツールの中で確認・保存してください (例えば uGet は aria2 のコマンドラインで設定を保存します)。

ウェブ UI

ノート: 以下のフロントエンドを使うには --enable-rpc を使って aria2c を起動する必要があります。フロントエンドはローカルコンピュータで使うことを想定されており、aria を使ってリモートサーバーでダウンロードすることは想定外です。
  • YaaW — HTML/CSS/Javascirpt だけで書かれた Yet Another Aria2 ウェブフロントエンド。
https://github.com/binux/yaaw || yaaw-gitAUR
  • Webui — aria2 の Html フロントエンド。
https://github.com/ziahamza/webui-aria2 || webui-aria2AUR
  • aria2rpcaria2c のリモートインスタンスに接続するコマンドラインツール。aria2c がインストールされている場合 /usr/share/doc/aria2/xmlrpc/aria2rpc 下にあります。
https://github.com/tatsuhiro-t/aria2/blob/master/doc/xmlrpc/aria2rpc || aria2

他の UI

ノート: 以下のフロントエンドを使うときは --enable-rpcaria2c を起動する必要はありません。
  • aria2fe — CLI ベースの aria2 ダウンロードユーティリティの GUI。
https://sourceforge.net/projects/aria2fe/ || aria2feAUR
  • Diana — aria2 のコマンドラインツール。
https://github.com/baskerville/diana || diana-gitAUR
  • downloadm — aria2c をバックエンドとして用いるダウンロードアクセラレータ/マネージャ。
https://sourceforge.net/projects/downloadm/ || downloadmAUR[リンク切れ: アーカイブ: aur-mirror]
  • eatmonkey — aria2 で動作する Xfce のダウンロードマネージャ。
https://goodies.xfce.org/projects/applications/eatmonkey || eatmonkeyAUR[リンク切れ: アーカイブ: aur-mirror]
  • karia2 — aria2 ダウンロードマネージャの QT4 インターフェイス。
https://sourceforge.net/projects/karia2/ || karia2-svnAUR
  • uGet — プラグインを使って aria2 をバックエンドとして利用できる機能豊富な GTK+/CLI ダウンロードマネージャ。
http://ugetdm.com || uget
  • 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')
[...]
ノート: -UWget オプションを使用して、ユーザーエージェントを Wget に変更します。ユーザーエージェントに基づいて要求をフィルタリングし、ユーザーが URL にアクセスするために使用する応答に応じて異なる応答を提供するサイトからのダウンロード時の問題を回避できます。 Aria2 はあまり知られていないダウンローダであるため、サイトではダウンローダではなくブラウザとして認識される可能性があるため、ほとんどの場合、ユーザーエージェントを Wget に変更することで問題を修正できます。

参照