はじめに#
こんにちは!今回はwgetコマンドについて解説します。
wgetは、インターネットからファイルをダウンロードするコマンドです。ブラウザなしで、コマンドラインからURLを指定するだけでファイルが取得できます。スクリプトの自動化や、大容量ファイルのダウンロードに最適。サーバー管理やデータ収集の現場で毎日使われているコマンドですね。
「コマンドラインのダウンロード機」って感じです。
wgetコマンドとは#
wgetは、Webからファイルをダウンロードするためのコマンドラインツールです。“world wide web” + “get"で"wget"ですね。
ブラウザでは面倒なリモートファイルの取得も、wgetなら簡単。スクリプトに組み込めるので、自動ダウンロードやバッチ処理に向いています。大きなファイルでも、中断したら続きからダウンロード再開できるし、複数のURLを一度にダウンロードすることも可能です。
基本構文#
URLを指定するだけでダウンロード開始。複数のURLを指定することもできます。
主なオプション#
| オプション |
説明 |
-O |
ダウンロードファイルの保存名を指定 |
-o |
ログファイルに出力 |
-q |
出力を抑制(quiet) |
-v |
詳細表示(verbose) |
-c |
中断したダウンロードを続行 |
-b |
バックグラウンドで実行 |
-i ファイル |
ファイルから複数URLを読み込み |
-P ディレクトリ |
ダウンロード先ディレクトリを指定 |
-r |
再帰的にダウンロード(Webサイト全体など) |
--limit-rate |
ダウンロード速度を制限 |
-U |
ユーザーエージェントを指定 |
--timeout |
タイムアウト時間を指定 |
使用例#
例1: 基本的なダウンロード#
1
|
wget https://example.com/file.tar.gz
|
実行結果:
1
2
3
4
5
6
7
8
|
--2026-01-03 12:35:00-- https://example.com/file.tar.gz
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1234567 (1.2M)
Saving to: 'file.tar.gz'
file.tar.gz 100%[=========>] 1.20M 2.45MB/s in 0.5s
|
URLを指定するだけで、ファイルがfile.tar.gzという名前でダウンロードされます。
例2: ファイル名を指定してダウンロード#
1
|
wget -O myfile.tar.gz https://example.com/file.tar.gz
|
実行結果:
1
2
3
4
|
--2026-01-03 12:35:00-- https://example.com/file.tar.gz
Saving to: 'myfile.tar.gz'
myfile.tar.gz 100%[=========>] 1.20M 2.45MB/s in 0.5s
|
-Oオプションで保存ファイル名を指定できます。
例3: 中断したダウンロードを続行#
1
|
wget -c https://example.com/large_file.iso
|
実行結果:
1
2
3
4
5
6
7
8
|
--2026-01-03 12:35:00-- https://example.com/large_file.iso
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 5000000000 (4.7G), 2500000000 (2.3G) remaining
Saving to: 'large_file.iso'
large_file.iso 50%[=====> ] 2.35G 5.23MB/s in 7m
|
大きなファイルが途中で止まっても、-cオプションで続きからダウンロードを再開。
例4: ダウンロード先を指定#
1
|
wget -P /tmp/ https://example.com/document.pdf
|
実行結果:
1
2
3
4
|
--2026-01-03 12:35:00-- https://example.com/document.pdf
Saving to: '/tmp/document.pdf'
document.pdf 100%[=========>] 856KB 2.45MB/s in 0.3s
|
-Pオプションで保存先ディレクトリを指定。
例5: 複数URLをファイルから読み込み#
1
2
3
4
5
6
|
cat urls.txt
https://example.com/file1.zip
https://example.com/file2.zip
https://example.com/file3.zip
wget -i urls.txt
|
実行結果:
1
2
3
4
5
6
7
8
|
--2026-01-03 12:35:00-- https://example.com/file1.zip
file1.zip 100%[=========>] 512KB 2.45MB/s in 0.2s
--2026-01-03 12:35:01-- https://example.com/file2.zip
file2.zip 100%[=========>] 768KB 2.45MB/s in 0.3s
--2026-01-03 12:35:02-- https://example.com/file3.zip
file3.zip 100%[=========>] 1.0MB 2.45MB/s in 0.4s
|
-iオプションでテキストファイルから複数URLを読み込んでダウンロード。
例6: バックグラウンドでダウンロード#
1
|
wget -b https://example.com/large_file.tar.gz
|
実行結果:
1
2
|
Continuing in background, pid 12345.
Output will be written to 'wget-log'.
|
-bオプションでバックグラウンド実行。ターミナルを閉じても続行します。
例7: ダウンロード速度を制限#
1
|
wget --limit-rate=500k https://example.com/file.tar.gz
|
実行結果:
1
2
3
4
|
--2026-01-03 12:35:00-- https://example.com/file.tar.gz
Saving to: 'file.tar.gz'
file.tar.gz 10%[> ] 120KB 500KB/s in 15s
|
ネットワーク負荷を軽減するため、ダウンロード速度を500KB/sに制限。
例8: 出力を抑制して実行#
1
|
wget -q https://example.com/file.tar.gz
|
実行結果:
-qオプションで出力を抑制。スクリプトでの使用に向いています。
例9: Webサイト全体をダウンロード#
1
|
wget -r -P /tmp/mirror/ https://example.com/
|
実行結果:
1
2
3
4
|
--2026-01-03 12:35:00-- https://example.com/
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
(...複数のファイルがダウンロードされる...)
|
-rで再帰的にダウンロード。Webサイト全体をミラーリング。
例10: ユーザーエージェント指定#
1
|
wget -U "Mozilla/5.0" https://example.com/file.txt
|
実行結果:
1
2
3
|
--2026-01-03 12:35:00-- https://example.com/file.txt
User-Agent: Mozilla/5.0
Saving to: 'file.txt'
|
ブラウザのユーザーエージェントを偽装。アクセス拒否される場合の対策。
Tips・注意点#
ダウンロード完了の確認#
1
2
|
wget -O file.tar.gz https://example.com/file.tar.gz
echo "ダウンロード完了:$?"
|
終了コードが0なら成功。スクリプトで活用できます。
タイムアウト設定は重要#
1
|
wget --timeout=10 https://slow-server.example.com/file.tar.gz
|
反応の遅いサーバーのために、タイムアウトを設定するとスクリプトが無限待機しません。
SSL証明書エラーの対処#
1
|
wget --no-check-certificate https://example.com/file.tar.gz
|
自己署名証明書で接続できない場合の応急処置。本来は推奨されません。
実践的な使い方#
定期的なファイル更新スクリプト#
1
2
3
4
5
|
#!/bin/bash
URL="https://example.com/dataset.csv"
DEST="/data/dataset.csv"
wget -q -O "$DEST" "$URL" && echo "Update successful" || echo "Download failed"
|
毎日実行するcron。ファイルが更新されていれば、最新版をダウンロード。
複数ファイルの一括ダウンロード#
1
2
3
|
for i in {1..10}; do
wget -q -P /downloads/ "https://example.com/file_$i.zip"
done
|
複数のファイルを一括ダウンロード。ループで番号を変えて自動化。
Webサイトのバックアップ#
1
|
wget -r -P /backup/website_$(date +%Y%m%d) https://example.com/
|
日付付きディレクトリにWebサイト全体をバックアップ。
まとめ#
wgetコマンドのポイント:
- インターネットからファイルをダウンロードする基本ツール
- -O: 保存ファイル名を指定
- -c: 中断したダウンロードを続行(超便利!)
- -b: バックグラウンド実行
- -i: 複数URLをファイルから読み込み
- -P: ダウンロード先ディレクトリ指定
- -r: Webサイト全体をミラーリング
- よく使う組み合わせ:
wget -O, wget -c, wget -q
手動でのファイル取得から自動化スクリプトまで、幅広く活用できるコマンドです。覚えておいて損はありませんよ!