ちょっと調べものをしていたところ、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ファイルやその他ちょっと重いパッケージなど、サイズの大きいファイルを急ぎでどうしても欲しい場合は便利ではなかろうか。
…ただまぁ、相手のサーバに負荷がかかるのでほどほどに。