wgetコマンドよりも便利で速い『axel』コマンド

ちょっと調べものをしていたところ、wgetコマンドよりも使い勝手のよさそうなダウンロードツール『axel』コマンドというものを見かけたので、ちょっと試してみることにした。
セッション数を指定することで、その数に分割してダウンロードを実行するので、10分割位にすれば普通にダウンロードしてくるよりも速くなる。

…まぁ、もちろんその分だけリソースを食うので、他の人のネットワーク速度が遅くなるかもしれないが。

1.インストール

まずはインストール。
以下のコマンドを実行する。

CentOSなどRHEL系

rpm -ihv http://pkgs.repoforge.org/axel/axel-2.4-1.el6.rf.x86_64.rpm

Debian/Ubuntu系

sudo apt-get install axel

Mac OS X

brew install axel

これでインストールができたはずだ。

2.使ってみる

さて、それでは実際に使ってみよう。
axelでは、主に以下のようなオプションがある。

  • --max-speed=x(-s x) … 最大速度(バイト/秒)
  • --num-connections=x(-n x) … 分割してダウンロードする数
  • --output=f(-o f) … ダウンロードしたファイルの設置先PATH
  • --search[=x](-S [x]) … 指定されたサーバからダウンロードファイルのミラーを探してくる
  • --quiet(-q) … 細かい情報を出力させない
  • --verbose(-v) … 詳細情報を出力する

とりあえず、特にオプション無し(quietのみ)と10分割でのダウンロード、それとwgetを比べてみよう。

[root@BS-PUB-CENT7-01 dtrx_test]# time wget http://cachefly.cachefly.net/200mb.test
--2016-07-13 00:24:49--  http://cachefly.cachefly.net/200mb.test
172.28.0.53:8008 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 200 OK
長さ: 209715200 (200M) [application/octet-stream]
`200mb.test' に保存中

100%[===============================================================================================================>] 209,715,200 1.67MB/s 時間 1m 42s

2016-07-13 00:26:31 (1.96 MB/s) - `200mb.test' へ保存完了 [209715200/209715200]

real    1m42.502s
user    0m0.288s
sys     0m5.184s
[root@BS-PUB-CENT7-01 dtrx_test]# rm 200mb.test
rm: 通常ファイル `200mb.test' を削除しますか? y
[root@BS-PUB-CENT7-01 dtrx_test]# time axel -q http://cachefly.cachefly.net/200mb.test

real    0m31.064s
user    0m0.163s
sys     0m5.250s
[root@BS-PUB-CENT7-01 dtrx_test]# rm 200mb.test
rm: 通常ファイル `200mb.test' を削除しますか? y
[root@BS-PUB-CENT7-01 dtrx_test]# time axel -q -n 10 http://cachefly.cachefly.net/200mb.test

real    0m21.923s
user    0m0.227s
sys     0m7.053s

200MB程度でのテストだが、その差は歴然だ。
OSのisoファイルやその他ちょっと重いパッケージなど、サイズの大きいファイルを急ぎでどうしても欲しい場合は便利ではなかろうか。

…ただまぁ、相手のサーバに負荷がかかるのでほどほどに。