ネットワーク

ネットワーク

wgetコマンド

2007/04/26
 概要  
HTTPまたはFTPを使って、サーバーからファイルを取得する。ファイルの再帰取得が可能であり、Webサイトの情報を一括取得することも可能である。また、ホームページの自動巡回ツールとして利用されることもある。

wgetコマンドには様々なカテゴリのオプションが存在するが、ここではよく利用すると考えられる、ログ、ダウンロード、HTTP、FTP、再起ダウンロードに関するオプションに絞り、さらにその中でも、主に使用すると考えられるオプションのみ紹介する。


 構文  
wget {-V | --version}

または

wget {-h | --help}

または

wget [-b | --background] [-e コマンド | --execute=コマンド] [-o ログ・ファイル名| --output-file=ログ・ファイル名] [-a ログ・ファイル名| --append-output=ログ・ファイル名] [-d | --debug] [-q | --quiet] [-v | --verbose] [-nv | --no-verbose] [-i ファイル名 | --input-file=ファイル名] [-t リトライ回数 | --tries=リトライ回数] [--retry-connrefused] [-O ファイル名 | --output-document=ファイル名] {[-nc | --no-clobber] | [-N | --timestamping]} [-c | --continue] [-S | --server-response] [--spider] [-w 秒数 | --wait=秒数] [--waitretry=秒数] [-Y on/off | --proxy=on/off] [-nd | --no-directories] [-x | --force-directories] [--directory-prefix=PREFIX] [--http-user=ユーザー名] [--http-password=パスワード] [--proxy-user=ユーザー名] [--proxy-password=パスワード] [--cookies=on/off] [--load-cookies=ファイル名] [--save-cookies=ファイル名] [--ftp-user=ユーザー名] [--ftp-password=パスワード] [--passive-ftp] [--no-passive-ftp] [-r | --recursive] [-l | --level=階層数] [--delete-after] [-A パターン・リスト | --accept パターン・リスト] [-R パターン・リスト | --reject パターン・リスト] [-L | --relative] [URL]


 利用環境  
Red Hat Enterprise Linux 3, ○ (wget-1.10.2-0にて確認)

 オプション 
-V | --versionコマンドのバージョン情報を表示する。
-h | --helpコマンドの使用方法を表示する。
-b | --backgroundwgetをバックグラウンドで実行し、ログ・ファイルにログを出力する。「-o」オプションで出力先ログ・ファイルを指定していた場合は、指定したログ・ファイルにログを出力する。-oオプションを指定していない場合は、wget-logファイルにログを出力する。
-e コマンド | --execute=コマンドコマンドを指定して実行する。コマンドは、wgetの設定ファイルであるwgetrcに記述する「variable = 値」の形式で指定する。なお、wgetrcファイルで指定するコマンドは、コマンド・ライン上で指定するオプションと対応しており、wgetrcで指定しておけばwgetコマンドの実行時に対応したオプションが有効となる。毎回同じオプションを指定するような場合は、あらかじめ wgetrcファイルでそのオプションが有効になるように設定しておけば、wgetコマンドを実行する際にそのオプションを指定しなくてもよくなる。wgetrcファイルでの具体的なコマンドの記述方法と各コマンドに対応するオプションについては、ここでは割愛する。


 ログおよび入力ファイルに関するオプション 
-o ログ・ファイル名 | --output-file=ログ・ファイル名メッセージを指定したログ・ファイルに出力する。指定したログ・ファイルが存在する場合は、ログ・ファイルの内容を上書きする。指定したログ・ファイルが存在しない場合は、新規にファイルを作成する。「-a」オプションと同時に指定した場合は、後ろに指定したオプションのみが有効となる。
-a ログ・ファイル名 | --append-output=ログ・ファイル名メッセージを指定したログ・ファイルに出力する。指定したログ・ファイルが存在する場合は、ログ・ファイルの内容を追記する。指定したログ・ファイルが存在しない場合は、新規にファイルを作成する。「-o」オプションを同時に指定した場合、後ろに指定したオプションのみが有効となる。
-d | --debugデバッグ情報を表示する。通常表示されるログ・メッセージと一緒にデバッグ情報も表示する。
-q | --quietログ・メッセージを表示しない。wgetを実行すると通常は表示されるログ・メッセージだが、このオプションが指定されると表示しない。「-d」オプションと同時に指定した場合は、デバッグ情報のみを表示する。
-v | --verbose詳細なログ・メッセージを表示する。デフォルトではこのオプションが有効となっているものとして実行される。
-nv | --no-verboseログ・メッセージの出力を簡略化する。通常出力されるログ・メッセージのうち、基本情報およびエラー情報のみ表示する。
-i ファイル名| --input-file=ファイル名指定したファイルから対象とするURLの情報を読み取る。ファイル内には複数のURLを指定することができ、複数のURLを指定すると一回のwgetコマンドの実行で複数のファイルを取得できる。ファイル名に「-」を指定した場合は、標準入力からURL情報を読み込む。


 ダウンロードに関するオプション 
-t リトライ回数 | --tries=リトライ回数リトライ回数を指定する。ファイル取得の際に「connection refused」や「not found」などのエラーが発生した場合にリトライする回数を指定する。リトライ回数として、「0」または「inf」を指定した場合は、「Ctrl+C」を押すまで無限にリトライを試みる。このオプションを特に指定しなかった場合のデフォルトではリトライ回数は「20」である。
--retry-connrefused「connection refused」エラーにより接続が拒否された場合に、リトライを試みる。通常は「connection refused」エラーで接続が拒否された場合はリトライせずにプログラムを終了するが、このオプションを指定するとリトライを試みる。リトライの回数は「-t」または「--tries」オプションで指定する。
-O ファイル名 | --output-document=ファイル名取得したファイルの内容を、指定したファイル名で出力する。ファイル名に「-」を指定した場合は標準出力として出力する。指定したファイルが存在する場合はログ・ファイルの内容を上書きし、存在しない場合は新規にファイルを作成する。
-nc | --no-clobber取得するファイルがすでに存在する場合はファイルを取得しない。取得するファイルの内容が更新されていても、ローカルにそのファイルが存在する場合は取得しない。「-N」または「--timestamping」オプションとは同時に指定できない。
-N | --timestamping取得するファイルがすでに存在する場合は、タイム・スタンプで更新の有無を判断し、ファイルの内容が更新されている場合にのみファイルを取得する。「-nc」または「--no-clobber」オプションとは同時に指定できない。
-c | --continue取得するファイルの一部がすでにローカルに存在する場合、続きの部分からファイルを取得する。ファイルの取得中に接続が切断されてファイル転送が中断された場合、このオプションを指定すれば、中断したファイルの続きの部分から取得を開始する。
-S | --server-responseサーバーからの応答ヘッダーを表示する。
--spider指定したファイルの存在確認のみ実行し、ファイルそのものを取得しない。
-w 秒数 | --wait=秒数-iオプションなどで複数ファイルを同時に取得する場合に、一つのファイルを取得してから次のファイルを取得するまでの待ち時間を秒単位で指定する。このオプションを特に指定しない場合は、一つのファイルを取得し終わるとすぐtに次のファイルを取得する。
--waitretry=秒数「connection refused」や「not found」などのエラーが発生した場合に、リトライを試みるまでの待ち時間を指定する。このオプションを特に指定しない場合、エラーとなった後すぐにリトライを試みる。
-Y on/off | --proxy=on/offプロキシ・サーバーの利用可否を指定する。「on」に設定すると、設定ファイルや環境変数でプロキシ・サーバーが指定されている場合はそのプロキシ・サーバーを利用してファイルを取得する。「off」に設定すると、設定ファイルや環境変数でプロキシ・サーバーが指定されていても、プロキシ・サーバーを利用せずにファイルの取得を実行する。なお、設定ファイルでは、HTTP用プロキシ・サーバーは「http_proxy = STRING」、FTP用プロキシ・サーバーは「ftp_proxy = STRING」と指定する。このオプションはデフォルトでは「on」に設定されており、プロキシ・サーバーを指定している場合にはプロキシ・サーバーを利用する。


 ディレクトリに関するオプション 
-nd | --no-directoriesファイルを取得する際、ローカルにディレクトリを作成しない。「-r」オプションを指定して再起的にファイルを取得する場合、通常はディレクトリを作成した中にファイルを保存するが、このオプションを指定するとディレクトリを作成せずに、全てのファイルをカレント・ディレクトリに保存する。
-x | --force-directoriesファイルを取得する際、ローカルにディレクトリを作成する。「-r」オプションを指定せずにファイルを取得する場合、通常はカレント・ディレクトリに取得したファイルを保存するが、このオプションを指定すると強制的にディレクトリを作成した中にファイルを保存する。
--directory-prefix=ディレクトリファイルを取得する際、指定したディレクトリ以下にファイルを保存する。「-r」オプションを指定せずにファイルを取得する場合、通常はカレント・ディレクトリに取得したファイルを保存するが、このオプションを指定すると指定したディレクトリ以下にファイルを保存する。


 HTTPに関するオプション 
--http-user=ユーザー名HTTPサーバーでユーザー認証が必要な場合に使うユーザー名を指定する。
--http-password=パスワードHTTPサーバでユーザー認証が必要な場合に使うパスワードを指定する。
--proxy-user=ユーザー名プロキシ・サーバーでユーザー認証が必要な場合に使うユーザー名を指定する。
--proxy-password=パスワード プロキシ・サーバーでユーザー認証が必要な場合に使うパスワードを指定する。
--cookies=on/offCookieの使用可否を指定する。「off」に設定するとCookieを利用しない。デフォルトの状態ではCookieを利用する「on」の状態になっている。
--load-cookies=ファイル名ファイル取得の前に、ファイル名で指定したファイルからCookieを読み込む。サイトにアクセスする際にログインが必要なサイトからファイルを取得するような場合に、このオプションを指定する。Cookieの内容をあらかじめ保存しておいたファイルを、このオプションで指定すればCookieの内容をサーバーに送信する。
--save-cookies=ファイル名ファイル取得のあとに、指定したファイル名にCookie情報を保存する。有効期限の指定されていないCookieや、すでに有効期限が切れているCookieは保存しない。ここで保存したCookieの情報を、「--load-cookies」オプションで読み込んでサーバーに送信することが可能である。


 FTPに関するオプション 
--ftp-user=ユーザー名FTPサーバーでユーザー認証が必要な場合に使うユーザー名を指定する。
--ftp-password=パスワードFTPサーバーでユーザー認証が必要な場合に使うパスワードを指定する。
--passive-ftpパッシブ・モードでFTPのデータ転送を行う。FTPのデータ転送モードには、サーバーからクライアントに対してデータ転送用のコネクションを張るアクティブ・モードと、クライアントからサーバーに対してデータ転送用のコネクションを張るパッシブ・モードの2種類のデータ転送モードが存在する。このオプションを指定すると、パッシブ・モードでデータを転送する。デフォルトでは、このオプションは有効であり、パッシブ・モードでデータ転送が行われる。
--no-passive-ftp FTPのパッシブ・モードを利用しない。wgetコマンドでFTPデータ通信を行う場合、デフォルトではパッシブ・モードでデータを転送する。このオプションを指定すると、パッシブ・モードでのデータ転送を抑制し、アクティブ・モードでデータを転送する。


 再帰ダウンロードに関するオプション 
-r | --recursive再帰的にファイルを取得する。通常、wgetでファイルを取得する場合、URLで指定したファイルのみを取得するが、このオプションを指定すると、URLで指定したファイルからリンクしているページについても、再帰的にファイルを取得する。
-l 階層数 | --level=階層数再帰的にダウンロードする際の、取得する階層の最大の深さを数値で指定する。「-r」オプションを指定すると、再帰的にファイルを取得するが、このオプションを指定すると、取得する階層の深さを制限することができる。「0」を指定すると深さが無制限となり、全ての階層のファイルを取得する。
--delete-afterファイル取得後に、保存したファイルを削除する。wgetコマンドでは、通常はURLで指定した場所にあるファイルを取得しローカルに保存するが、このオプションを指定するとファイルを取得し保存したあとに、その保存したファイルを削除する。
-A パターン・リスト | --accept パターン・リスト 再帰ダウンロードする際に取得するファイルの拡張子を指定する。通常再帰ダウンロードする場合、すべての拡張子のファイルを取得するが、このオプションを指定すると、指定した拡張子のファイルのみ取得する。複数の種類のファイルを指定することも可能で、この場合コンマで区切って指定する。例えば、JPEGとGIFのファイルのみを取得する場合は「wget -A .jpg,.gif URL」と指定する。
-R パターン・リスト | --reject パターン・リスト再帰ダウンロードする際に取得しないファイルの拡張子を指定する。このオプションを指定すると、通常再帰ダウンロードする際に指定したファイルは取得しなくなる。「-A」または「--accept」オプションと同様に、複数の種類のファイルを指定することも可能である。
-L | --relative再帰ダウンロードする際に、相対リンクで指定されているファイルのみを取得する。通常再帰ダウンロードする場合には全てのリンクで指定されているファイルを取得するが、このオプションを指定すると相対リンクで指定されているファイルのみを取得する。そのため、絶対リンクで他のサイトを指定しているような場合に、そのサイトのファイルを取得対象から外すことができる。
URL取得する対象ファイルのURLを指定する。「-i」または「--input-file」オプションを指定している場合は、このオプションは無効となる。


 使用例1:ユーザー認証が必要なWebサイトからファイルを取得する(クリックで詳細表示)  
wget --http-user=ユーザー名 --http-passwd=パスワード URL

 使用例2:複数のファイルを同時に取得する(クリックで詳細表示)  
wget -I 対象を指定したファイル

この記事に対するfacebookコメント

nikkeibpITpro

▲ ページトップ

Twitterもチェック

  • 19150TWEETS
  • 32148フォロー
  • 31242フォロワー

注目の書籍

好評発売中!

絶対わかる!ネットワークトラブル解決超入門 改訂版

ネットワーク管理者
必読!迅速なトラブル
解決と予防のための
知識が身に付く