もっと詳しく

挨拶と前書き

みなさんこんにちは、FascodeNetworkのブログスケジュール管理などを行っているなおこです。

Linuxを使うには大体ISOファイルダウンロードする必要があるわけですが、その際にISOファイルダウンロード、遅すぎって思いませんか?

ものにもよりますがファイルサイズが1GB~2GBぐらいあるわけなので当然時間かかるよねみたいなところはあります。

だけど気持ち早くダウンロードできたらめっちゃ良くね?

ということで普段wgetなどでダウンロードしている私は、Google Chromeを立ち上げてGoogle検索で調べていると下記のURLのようなaria2に関するqiitaの記事が見つかりました。

curlやwgetの数倍速い 爆速ダウンローダー aria2を使う – Qiita

はじめに

Webサーバなどからファイルをダウンロードするためのコマンドラインツールとしては、curlとwgetがメジャーだと思います。どちらも多機能で簡単に使える便利なツールですね。

今回ご紹介するaria2は、curlやwg…

qiitaの記事を読むとどうやら、複数の接続を用いて並列ダウンロード行える模様。

ということで今回はaria2のご紹介をしたいと思います。

aria2をインストール

公式サイトからソースコードをダウンロード後ビルドして使うという手もありますが、すでにパッケージやバイナリが用意されているようなのでそちらを使うことにします。

OSによってインストール方法は異なりますがおおよそ下記の手順でインストールできると思われます。

Mac OS X

brew install aria2

UbuntuやDebian

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aria2

RHEL7やCentOS7

sudo yum update
sudo yum install epel-release
sudo yum install aria2

Arch Linux

sudo pacman -Syyu
sudo pacman -S aria2

Fedora

sudo dnf upgrade
sudo dnf install aria2

aria2実際に使ってみる

aria2ではデフォルトで最大16本まで同時接続を行いダウンロードができます。

今回は2つのソースからそれぞれ5本同時接続し10本で接続してみます。

gigenet.comさんfree.nchc.org.twさんのosdnミラーを勝手に使わせていただきます。

検証に使うマシン↓

  • OS : Arch Linux
  • CPU: AMD Ryzen 5 5600X (12) @ 3.700GHz
  • GPU: NVIDIA GeForce GTX 960
  • RAM: 32GB

ダウンロードするISOファイルのソース

HTTPSやHTTPでダウンロード

aria2で同時接続するには-x10 や-s10 などのオプション指定が必要です。

-x10 同時接続数(デフォルトでは1-16まで対応)
-s10 複数のサーバーに接続する際の同時接続数(デフォルトでは1-16まで対応)

上記のオプションを設定してコマンドにすると下記のようになります。

aria2c -x10 -s10 URL1 URL2

aria2c -x10 -s10 https://mirrors.gigenet.com/OSDN//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso https://free.nchc.org.tw/osdn//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso

timeコマンドで計測しながら実行してみると1分26秒ほどでダウンロードできたみたいです。

7.35s user 
6.71s system 
16% cpu 
1:26.07 total

普通にwgetでosdnからダウンロードするとどれぐらいかかるか下記のコマンドにtimeコマンド付与して検証してみると

wget URL

wget https://free.nchc.org.tw/osdn//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso

4分57秒(訳5分)かかります。

3.07s user 
8.29s system 
3% cpu 
4:57.79 total

10倍に早くはなりませんでしたが、4倍〜5倍早くなるのはかなりの時間短縮になりますね.

ブロックサイズの指定なども行えるようです。

-k1M 同時接続のブロックサイズ(5MIBの場合は-k5M デフォルトでは20MiBが設定されている模様)

SFTPやFTPでダウンロード

なんとaria2はsftpやftpのプロトコルにもサポートしてるとのこと、嬉しいことですね。

とはいえユーザ名やパスワードがかかっていることも多いですよねそのため専用のオプションが用意されているようです。

  • --ftp-user=任意のユーザー名
  • --ftp-passwd=任意のパスワード

URLの指定はhttpsやhttpの部分を置き換える形で指定します。

  • sftp://example.com/hoge.iso
  • ftp://example.com/hoge.iso

上記の内容を元にコマンド考えると下記のようになります。ちなみに接続本数の指定も行うことできるみたいです。

aria2c –ftp-user=user –ftp-passwd=pass URL

aria2c --ftp-user=任意のユーザー名 --ftp-passwd=任意のパスワード sftp://example.com/hoge.iso

その他のオプションについては下記のaria2マニュアルページがgithub.ioにありますので詳しく知りたい場合はぜひご覧ください。

aria2c(1) — aria2 1.36.0 documentation

最後に

今回紹介した、aria2を用いて同時接続を行うやり方はサーバー側に負担がかかるため、連続した使用は避け、急いでるときにたまに使うぐらいのほうが良いでしょう。

それではそれではまた、次のブログでお会いしましょう。

参考にさせていただいたサイト

curlやwgetの数倍速い 爆速ダウンローダー aria2を使う – Qiita

はじめに

Webサーバなどからファイルをダウンロードするためのコマンドラインツールとしては、curlとwgetがメジャーだと思います。どちらも多機能で簡単に使える便利なツールですね。

今回ご紹介するaria2は、curlやwg…

aria2c(1) — aria2 1.36.0 documentation

The post aria2をつかってどデカISOファイルを高速ダウンロードする方法【Linux】 first appeared on FascodeNetwork Blog.