Linux wgetコマンドラインツールは、インターネット経由でファイルをダウンロードするために使用される気の利いたユーティリティです。これは通常、tarballおよびzipファイル、debおよびrpmパッケージをWebサイトからダウンロードする場合に使用されます。
wgetコマンドを使用すると、HTTP、HTTPS、さらにはFTPプロトコルを介してファイルをダウンロードできます。強力なwgetコマンドと一緒に使用できるいくつかのオプション。
このチュートリアルでは、例を通してGNUwgetコマンドの使用方法を見ていきます。
wgetの構文
wgetを使用するための構文は非常に簡単です。 wgetコマンドを呼び出し、続いてオプションを呼び出し、その後、図のようにWebサイトのリンクを呼び出します。
$ wget [ options ] url
wgetをインストール
最近のほとんどのLinuxディストリビューションにはwgetユーティリティが付属しているため、インストールする必要はありません。ただし、特に古いシステムや一部のクラウドインスタンスで、または「–bash:wget:Commandnotfound」エラーメッセージを解決するためにインストールが必要になる場合があります。
UbuntuとDebianのフレーバーの場合、APTパッケージマネージャーを使用して次のコマンドを実行します。
$ sudo apt-get install wget
RHEL / CentOS 8フレーバーにwgetコマンドをインストールするには、次のコマンドを実行します。
$ sudo dnf install wget
古いリリース(RHEL7およびCentOS7以前)の場合、yumパッケージマネージャーを次のように使用します
$ sudo yum install wget
Manjaro、Arch Linux、EndeavourOSなどのArchLinuxおよびArchLinuxディストリビューションの場合、次のようにpacmanパッケージマネージャーを使用します。
$ sudo pacman -S wget
インターネットからファイルをダウンロード
最も基本的な形式では、オプションを使用せずに、wgetコマンドはURLで指定されているようにインターネットからファイルをダウンロードします。最も単純な構文を以下に示します。
$ wget website_url
たとえば、以下の例では、公式のWordPressサイトから最新のWordPresstarballをダウンロードしています。
$ wget https://wordpress.org/latest.tar.gz
出力から、wgetは最初にWebサイトのドメインをIPアドレスに解決し、次にサーバーに接続してからファイル転送を開始することがわかります。ダウンロードが進行中の場合、ファイル名、サイズ、ダウンロード速度、およびダウンロードの推定完了時間を示す進行状況バーが表示されます。
ダウンロードが完了したら、必ず現在の作業ディレクトリでファイルを見つけてください。これは、lsコマンドを呼び出すことで確認できます。
ファイルをダウンロードして特定の名前で保存
元の名前とは異なる名前でファイルを保存する場合は、-O
を渡すだけです。 オプションの後に希望の名前を続けます。
$ wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz
上記のコマンドは、元のファイル「latest.tar.gz」をWordPressサイトからダウンロードし、「wordpress.tar.gz」として保存します。
特定のディレクトリにダウンロード
前に説明したように、wgetはファイルを現在の作業ディレクトリにダウンロードします。 -P
を使用して、別のダウンロード場所を指定できます フラグの後に宛先ディレクトリへのパスが続きます。
$ wget -P /var/www/html https://wordpress.org/latest.tar.gz
上記の例では、ファイルは/ var / www/htmlディレクトリに保存されています。
ダウンロード速度の制限
wgetを使用すると、ファイルのダウンロード速度を制限することもできます。ダウンロード速度に上限を設けるには、--limit-rate
を呼び出します。 オプションの後にダウンロード速度が続きます。速度は通常、1秒あたりのバイト数で測定されます。
制限レートを500KB/sに設定するには、次のコマンドを実行します。
$ wget --limit-rate =500k https://wordpress.org/latest.tar.gz
部分的にダウンロードされたファイルを引き続き取得する方法
ファイルのダウンロード中に、接続が突然切断され、部分的にダウンロードされたファイルが残る場合があります。ダウンロードを再開する代わりに、wget -C
を使用してください 図のようにダウンロードを再開するオプション。
$ wget -c https://wordpress.org/latest.tar.gz
上記の例では、WordPressからのtarballファイルのファイルダウンロードを再開しています。 Webサイトがファイルのダウンロードの再開に応答しない場合、コマンドはファイルのダウンロードを再開し、既存のファイルを上書きすることに注意してください。
バックグラウンドでファイルをダウンロード
バックグラウンドでファイルをダウンロードするには、wget -b
を渡します 以下に示すオプション。
$ wget -b https://osdn.net/projects/manjaro/storage/kde/20.0.3/manjaro-kde-20.0.3-200606-linux56.iso
上記の例では、バックグラウンドでManjaro KDEPlasmaISOファイルをダウンロードしています。ダウンロードのステータスを監視するには、次のようにwgetlogコマンドを使用します
$ tail –f wget –log
複数のファイルをダウンロード
ダウンロードするファイルが複数ある場合は、ターミナルでwgetコマンドを繰り返し実行するのは面倒です。より良いアプローチは、wgetコマンドを1回実行して、ファイルを次々にダウンロードすることです。
これを行うには、WebサイトのURLをテキストファイルに保存します。その後、-i
を指定してwgetコマンドを呼び出します。 オプションの後にテキストファイルの名前が続きます。
この例では、WordPressのtarballファイルとOwnCloudのzipファイルをダウンロードします。まず、ダウンロードリンクをサンプルファイルに保存しました。これを「downloads.txt」と呼びましょう:
https://wordpress.org/latest.tar.gz
https://download.owncloud.org/community/owncloud-complete-20200731.zip
ここで、複数のファイルをダウンロードするには、次のコマンドを実行します。
$ wget -i downloads.txt
これらは次々にダウンロードされます。そして、それが複数のファイルをダウンロードする方法です。
ウェブサイトのミラーをダウンロードする
wgetのもう1つの一般的に知られていない使用法は、Webサイトの複製またはミラーコピーを作成する機能です。これは、-m
を渡すことで実現できます。 示されているオプション。これにより、すべての内部リンク、および画像、ウィジェット、Javascript、CSSファイルなどの他のリソースとともにWebサイトのミラーコピーが作成されます。
$ wget -m http://www.example.com
ローカルブラウジング用にWebサイトのクローンを作成する場合は、図のように追加の引数を渡します。
$ wget -m -k -p http://www.example.com
-k
フラグは、ローカルでの表示に適した形式へのリンクの変換を容易にします。一方、-p
オプションは、ブラウザのHTMLページにコンテンツを表示するために必要な関連ファイルをダウンロードするようにwgetユーティリティに指示します。
SSL証明書を無視する
SSL証明書が信頼されていないか有効でないWebサーバーからHTTPS経由でファイルをダウンロードするときにエラーが発生しないようにするには、--no-check-certificate
を渡します。 オプション:
$ wget --no-check-certificate https://domain-with-untrusted-ssl-cert
出力をダウンロードしてログファイルにリダイレクトする
wgetコマンドの出力は、-o
を使用してファイルのダウンロード中にログに記録できます。 示されているオプション:
$ wget -o download.log https://wordpress.org/latest.tar.gz
その後、次のように、tailコマンドを使用してダウンロードの進行に合わせてログファイルをリアルタイムで表示できます。
$ tail -f download.log
ダウンロードの再試行を制限する
場合によっては、帯域幅の速度が遅くなり、ファイルをダウンロードできなくなることがあります。 wget --tries=[no. of tries]
示されているオプション:
$ wget --tries=10 https://wordpress.org/latest.tar.gz
上記の例では、getは終了する前にtarballファイルのダウンロードを10回再試行します。
FTPサーバーからダウンロード
パスワードで保護されている場合でも、FTPサーバーからファイルをダウンロードすることもできます。次のように、wgetコマンドでftpユーザー名とパスワードを渡すだけです。
$ wget --ftp-user=[ftp_user] --ftp-password=[ftp_password] ftp://ftp.ftp-site.com
wgetユーザーエージェントの変更
ユーザーエージェントは、基本的にブラウザによってWebサーバーに送信されるヘッダーフィールドです。 Webページをダウンロードしている場合、wgetはWebブラウザをエミュレートします。サーバーにアクセスするための十分な権限がないことを示すエラーが発生することがあります。これが発生した場合、WebサイトまたはWebサーバーが特定の「ユーザーエージェント」に関連付けられているブラウザをブロックしている可能性があります。これがあなたが見つけることができるユーザーエージェントのデータベースです。
ユーザーエージェントを変更するには、次の構文を使用します。
$ wget -U "user agent" URL
たとえば、最新バージョンであるGoogle Chromeバージョン74をエミュレートしながらサイトexample.comをダウンロードするには、次を使用します。
$ wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "http://example.com"
再帰ダウンロード
ローカルで表示するためにWebサイトをダウンロードするには、-r
を使用して再帰的なダウンロードをオンにする必要があります。 または--recursive
オプションとリンクは-k
でローカルリンクに変換されます または--convert-links
オプション。
例:
$ wget -rk https://example.com
結論
ご覧のとおり、wgetは非常に強力で柔軟なツールであり、インターネットからファイルを取得するために使用できます。このチュートリアルでは、wgetを使用するさまざまな方法と、http、https、およびftpを介してWebサーバーからファイルとWebページをダウンロードする方法を示しました。 wgetコマンドの使用法の詳細については、manページにアクセスしてください。