技林TOP > 自宅サーバ構築メモ > wget の使い方


≫wget とは

wget とは、UNIXコマンドラインで HTTP や FTP 経由のファイル取得を行えるツールです。
Webサイトであれば、リンク先を階層で指定して一気に取得することができ、オフラインでじっくり読んだり、ミラーサイトを簡単に作ることが可能です。
また、ダウンロードが途中で止まってしまった場合は、途中からやり直すレジューム機能があり便利です。

wget はGNUプロジェクトで作られているフリーソフトです。改良も配布も自由なので、是非活用しましょう。

≫wget の入手とインストール

wget はとても標準的なものなのでほとんどのUNIX系システムには入っていることだと思いますが、無い場合は入手しなければなりません。

apt-get で簡単インストール。
# apt-get install wget


だめならソースを入手。
ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/ あたりが良いかと思います。
# tar zxvf wget-X.X.X.tar.gz
# cd wget-X.X.X
# ./configure
# make
# make install
てな感じで一撃。
インストール先は基本的に /usr/local/bin/ です。

≫使い方

wget の使い方は簡単。

例えば、トップページをダウンロードしたい場合
# wget http://www.sample.com/index.html
これで、カレントディレクトリに index.html というファイルがダウンロードされます。


オプションをつけることによって wget はさらに便利になります。
# wget -l 3 http://www.sample.com/index.html


URLを起点としてリンク先を3階層たどってファイルを取得します。


サイトごとダウンロードする場合は -r
# wget -r http://www.sample.com/


大きいファイルで途中でダウンロードが止まった場合は -c でレジューム
# wget -c http://www.sample.com/index.html


filepath で指定されたファイルに記述された URL を自動取得してダウンロードなんてこともできます。-i
# wget -i filepath


つまり、文法としては
# wget -オプション (オプション引数) URL
ということになります。

≫wget コマンド一覧

■全般オプション
コマンド名解説
-Vwget のバージョン表示
-hオプション一覧のヘルプ(困ったらコレ)
-bダウンロードをバックグラウンドで行います
-o FileNameログファイルを FileName に書き出します(上書き)
-a FileNameログファイルを FileName に書き出します(追記)
-qログファイルを書き出さない


■ファイル取得に関するオプション
コマンド名解説
-t Numberダウンロード試行回数
-O FileName取得内容をを FileName に書き出す
-nc既に取得済みのファイルは改めて取得しない
-cダウンロードが途中で終わったものを継続するレジューム機能
-w Numberダウンロードの間隔(秒)を指定する
-q Number取得ファイルの最大容量
(単位はバイト:kでキロバイト:mでメガバイト)


■再帰的取得に関するオプション
コマンド名解説
-r再帰的取得を行う
-l Numberリンクをたどる階層数
-k取得時に絶対指定のリンクを相対指定に書き換える
-mミラーリングする
-A EXTEXTで指定された拡張子ファイルのみ取得
-R EXTEXTで指定された拡張子のファイルは取得しない
-I DirList取得対象のディレクトリリスト
ex. # wget -I /a,/b URL
-X DirList取得対象外のディレクトリリスト
ex. # wget -I /c,/d URL
-np親ディレクトリは参照しない
-L相対リンクのみ辿る
-Hホストの壁を越えて再帰的取得を行う
-D DomainDomainを取得対象とする


■ローカル保存に関するオプション
コマンド名解説
-i FilepathFilepathで指定されたファイルに記述されたURLを取得
-ndローカルにディレクトリを作らない
-xローカルにディレクトリを作る
-nHローカルへ保管時にhost名の部分をはずしてディレクトリーを作成する
-p DirPathローカル保存の起点を DirPath にする
-q Number取得ファイルの最大容量
(単位はバイト:kでキロバイト:mでメガバイト)


≫wgetrc

コマンドラインで毎回オプションを指定するのは面倒です。

そういった場合は、wget の初期設定ファイル wgetrc でオプションをデフォルトで有効になるよう記述しましょう。

wgetrc は /usr/local/etc/wgetrc や /etc に見つかるかと思います。

文法としては
コマンド = 値
という非常にシンプルなものです。

■wgetrc のコマンド一覧
コマンド名解説対応コマンドラインオプション
accept = STRING   -A
reject = STRING   -R
add_hostdir = on/off ホスト名を先頭に追加する -nH (off)
always_rest = on/off (中断したところから) 取得を続行する -c
base = STRING 相対 URL の基準パス -B
convert_links = on/off 相対でないリンクをローカルに変換する -k
debug = on/off デバッグモード -d
delete_after = on/off ダウンロード後に削除 --delete-after
dir_mode = N サブディレクトリ作成時のパーミッションの設定 (デフォルトは 0755)
dir_prefix = STRING ディレクトリ ツリーのルート指定 -P
dirstruct = on/off ディレクトリ作成のオン/オフ -x (on), -nd (off)
domains = STRING 探索するドメイン のリスト -D
dot_bytes = N 取得時に出力されるドットが示すバイト数 (デフォルトは 1024)。値の後に "k" または "m" を付加し、キロバイトまたはメガバイトで指定することができる
dots_in_line = N 取得時に 1 行に出力されるドット数 (デフォルトは 50)
dot_spacing = N 1 クラスタあたりのドット数 (デフォルトは 10)
dot_style = STRING ドットのスタイル --dot-style
exclude_directories = STRING ダウンロードを除外するディレクトリのリスト (カンマ区切り) -X
exclude_domains = STRING 除外するドメイン のリスト --exclude-domains
follow_ftp = on/off HTML ドキュメント中の FTP リンクを追跡する -f
force_html = on/off 入力ファイルを強制的に HTML ドキュメントみなす -F
ftp_proxy = STRING グローバルに設定されている FTP プロキシの代わりに STRING を利用する
glob = on/off globbing (ワイルドカード指定) のオン/オフ -g
header = STRING 追加ヘッダの定義 --header
http_passwd = STRING HTTP パスワードの設定
http_passwd = STRING グローバルに設定されている HTTP プロキシの代わりに STRING を利用する
http_user = STRING HTTP ユーザの設定
ignore_length = on/off Content-Length ヘッダを無視する --ignore-length
include_directories = STRING ダウンロード時に追跡するディレクトリのリスト (カンマ区切り) -I
input = STRING STRING から URL を読み込む -i
kill_longer = on/off Content-Length ヘッダの指定よりもデータが長い場合は不正とみなし、再取得を試みる。デフォルトの動作では存在するデータをそのまま保存するようになっており、Content-Length と同じ、またはそれ以上のサイズになる
logfile = STRING ログファイル名 -o
login = STRING リモートマシンのユーザ名。 FTP でのデフォルトは anonymous となる
mirror = on/off ミラーリングのオン/オフ -m
lnoclobber = on/off 既存ファイルを上書きしない -nc
no_proxy = STRING PROXY を使わないドメインのリスト (カンマ区切り)。グローバルな設定の代わりに読み込まれる
no_parent = on/off ディレクトリ階層の外部にあるデータの取得を禁止する --no-parent
output_document = STRING 出力ファイル名の指定 -O
passive_ftp = on/off passive FTP (?) --passive-ftp
passwd = STRING FTP パスワード。設定しない場合のデフォルトは username@hostname.domainname となる
proxy_user = STRING プロキシ認証のユーザ名 --proxy-user
proxy_passwd = STRING プロキシ認証のパスワード --proxy-passwd
quiet = on/off クワイエットモード -q
quota = QUOTA ダウンロード量の指定。グローバルな wgetrc に記述すると便利。ダウンロード総量が設定量以上になると、Wget は取得を中止する。値はバイト (デフォルト)、キロバイト (k を追加)、またはメガバイト (m を追加) で指定する。 quota = 5m と記述すると、ダウンロード量を 5 MB に設定する。システム設定はユーザのスタートアップ ファイルにオーバーライドされることに注意
reclevel = N 再帰レベル -l
recursive = on/off 再帰検索のオン/オフ -r
relative_only = on/off 相対リンク のみを追跡する -L
remove_listing = on/off Wget がダウンロードした FTP リスト (.listing ファイル) を削除する -nr (off)
retr_symlinks = on/off シンボリックリンクを通常ファイルのように取得する --retr-symlinks
robots = on/off /robots.txt ファイルを使う。デフォルト設定 (on) を変更する際には、何が行われるかを理解すること
server_response = on/off HTTP および FTP サーバーの応答を出力する -S
simple_host_check = on/off ホストチェック を行わない -nh
span_hosts = on/off すべてのホスト を探索する -H
timeout = N タイムアウト値の設定 -T
timestamping = on/off タイムスタンプ の使用 -N
num_tries = N 1 つの URL あたりの再試行回数 -t
use_proxy = on/off プロキシ対応のオン/オフ -Y
verbose = on/off 詳細出力のオン/オフ -v (on), -nv (off)
wait = N データ取得時の待ち時間を秒単位で指定する -w

≫参考にしたサイト

(C) bayashi.net