[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2. 呼び出し

デフォルトで,Wgetの呼び出しは非常に簡単です.基本的な構文は以下の通り です.

 
wget [option]… [URL]…

Wgetは,コマンドラインで指定された全てのURLを,単純にダウンロード します.URLは,以下で定義されるようなUniform Resource Locatorです.

しかし,Wgetのデフォルトパラメータをいくつか変更したいかもしれません. そうするためには二つの方法が利用可能です.永久的に適切なコマンドを ‘.wgetrc’ (see section スタートアップファイル)に追加する方法と,コマンドラインで 指定する方法です.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.1 URLの書式

URLは,Uniform Resource Locatorの略語です.uniform resource locatorはインターネットで利用可能なリソースに対するコンパクトな文字列表 示です.WgetはURL構文をRFC1738に従って理解します.これは,最 も広く使用されている形式です(角カッコはオプション部分を意味します).

 
http://host[:port]/directory/file
ftp://host[:port]/directory/file

ユーザ名とパスワードをURL内部に符号化できます.

 
ftp://user:password@host/path
http://user:password@host/path

userまたはpasswordのどちらか,または両方とも無くても構いま せん.HTTPユーザ名やパスワードのどちらか一方を省いている場合,認証 は送られません.FTPユーザ名を省いている場合,‘anonymous’が使 用されます.FTPパスワードを省いている場合,電子メールのアドレスが デフォルトパスワードとして提供されます.(1)

重要な注意:コマンドラインでパスワードを含むURLを指定した 場合,ユーザ名とパスワードは,psを使用することで,システム上のす べてのユーザがそのまま見えることになります.複数のユーザのシステムでは, これは大きなセキュリティ上の問題になります.それを回避するために wget -i -を使用し,それぞれを別の行にしてC-dで終わりにした URLをWgetの標準入力に与えて下さい

URLでの安全ではない符号化は‘%xy’で可能で,xyは文字の ASCII値の16進数の表現です.一般的な安全でない文字は,‘%’ (‘%25’として引用されます),‘:’ (‘%3A’として引用されます), そして‘@’ (‘%40’として引用されます)が含まれます.安全でない 文字の包括的なリストは,RFC1738を参照してください.

Wgetは,FTP URLに対するtypeの機能もサポートします.デ フォルトで,FTPドキュメントはバイナリモードで回収(type ‘i’) し,それはダウンロードで変更されないことを意味します.その他の役に立つ モードは‘a’ (ASCII)モードで,それは異なるオペレーティングシ ステムの間で行の分離文字を変換し,そのためそれはテキストファイルで役に 立ちます.例は以下のようになります.

 
ftp://host/directory/file;type=a

歴史的(ヒステリック?)な理由と広範囲で使用されていることから,URL 指定の代替となる変種もサポートされています.

FTP-only syntax (NcFTPでサポートされました):

 
host:/dir/file

HTTP-only syntax (Netscapeで導入されました):

 
host[:port]/dir/file

これら二つの代替形式は推奨されず,将来のサポートはやめるかもしれません.

これらの表記の違いを理解できなかったり,その使い方を知らない場合, LynxNetscapeのような好みのブラウザで使用するプレーンな 普通の書式を使用してください.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.2 オプションの構文

Wgetは,コマンドライン引数の処理にGNU getoptを使用しているので,全ての オプションには,短い形式に対応する長い形式があります.長いオプションは 覚え易いのですが入力に時間がかかります.異なるオプションスタイルを自由 に混ぜて使用したり,コマンドライン引数の後にオプションを指定したりして もかまいません.このため,以下のように書くことができます.

 
wget -r --tries=10 http://fly.srk.fer.hr/ -o log

オプションを受け入れる引数とその引数の間のスペースは省略してもかまいま せん.‘-o log’の代わりに‘-olog’と書くことができます.

引数が不要な複数のオプションを,以下のようにまとめて書き込んでもかまい ません.

 
wget -drc URL

これは,以下と完全に等価です.

 
wget -d -r -c URL

オプションは引数の後に指定できるので,それらは‘--’で終端することが できます.そのため,以下ではURL-x’をダウンロードしようとし, ‘log’に失敗を報告します.

 
wget -o log -- -x

カンマで分離されているリストを受け入れるすべてのオプションは,空のリス トの指定がその値をクリアするという規則に従います.これは, ‘.wgetrc’の設定をクリアにするとき役に立つはずです.例えば, ‘.wgetrc’がexclude_directoriesを‘/cgi-bin’に設定する場 合,以下の例では最初にリセットし,除外するものとして‘/~nobody’ と ‘/~somebody’を設定します.‘.wgetrc’ (see section Wgetrcの構文)の リストをクリアにすることも可能です.

 
wget -X '' -X /~nobody,/~somebody

引数を受け入れないオプションは,ほとんどが真偽(boolean)のオプショ ンで,yesまたはno (“boolean”)の値を状態に反映させるような名前が付いて います.例えば,‘--follow-ftp’はWgetにHTMLファイルのFTPへのリンク をたどるように伝えますが,一方‘--no-glob’では,FTPのURLでのファイ ルのグラブを実行しないように伝えます.真偽のオプションは,肯定 (affirmative)または否定(negative) (‘--no’ではじまります). そのようなオプションは全て幾つかの属性を共有します.

例外はありますが,デフォルトの動作がオプションの目的と反対であると仮定 されています.例えば,‘--follow-ftp’が存在するということは,デフォ ルトがHTMLページからFTPへのリンクをたどらないことを仮定して説明 されています.

肯定のオプションは,オプション名に‘--no-’を前置することで否定する ことができます.否定オプションは,‘--no-’接頭辞を省略することで意 味を反転することができます.これで,必要十分だと思われます—肯定オプショ ンのデフォルトは何もしないのに,なぜ明示的にそれをオフにする方法が提供 されているのでしょうか?それは,スタートアップファイルでデフォルトが変 更されている可能性があるためです.例えば,‘.wgetrc’で follow_ftp = offを使用すると,WgetはデフォルトでFTPへのリンクを たどりませんし,‘--no-follow-ftp’を使用することが,コマンドライン からデフォルトに戻す唯一の方法になります.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.3 基本的なスタートアップオプション

-V
--version

Wgetのバージョンを表示します.

-h
--help

Wgetのすべてのコマンドラインオプションを記述するヘルプメッセージを出力 します.

-b
--background

開始直後にバックグラウンドに移行します.出力ファイルを‘-o’で指定し ていない場合,出力は‘wget-log’にリダイレクトされます.

-e command
--execute command

.wgetrc’ (see section スタートアップファイル)の一部のように,commandを実 行します.このようなコマンドは‘.wgetrc’のコマンドの後に実行 されるので,それらに優先します.一つ以上のwgetrcコマンドを指定する必要 がある場合,‘-e’で複数実行して下さい.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.4 ログと入力ファイルオプション

-o logfile
--output-file=logfile

全てのメッセージをlogfileにログを取ります.メッセージは通常,標準 エラー出力に報告されます.

-a logfile
--append-output=logfile

logfileに追加します.古いログファイルを上書きする代わりに logfileに追加する以外,これは‘-o’と同じです.logfile が無い場合は,新しいファイルを作成します.

-d
--debug

デバッグ出力を開始し,それは,Wgetが正確に動作しない場合,Wgetの開発に 様々な重要な情報として意味があります.システム管理者が,デバッグサポー ト無しでWgetのコンパイルを選択している可能性もあり,その場合‘-d’ は動作しません.デバッグサポートでのコンパイルは常に安全だということに 注意してください—デバッグサポートでコンパイルされたWgetは,‘-d’ が要求されるまでデバッグ情報を決して出力しません.バグレポートを 送るために‘-d’を使用する方法の詳細は,See section バグの報告.

-q
--quiet

Wgetの出力を停止します.

-v
--verbose

利用可能な全てのデータを用いた冗長な出力を開始します.デフォルトの出力 は冗長です.

-nv
--non-verbose

冗長でない出力です—完全に静かにするのではなく(そうするには‘-q’ を使用してください)冗長を停止するということで,エラーメッセージと基本的 な情報は,まだ出力されることを意味します.

-i file
--input-file=file

fileからURLを読み込みます.‘-’がfileとして指定さ れている場合,URLは標準入力から読み込まれます.(‘-’という名前 のファイルから読むときは,‘./-’を使用して下さい.

この機能が使用されている場合,URLをコマンドラインに書く必要はあり ません.コマンド行と入力ファイルの両方にURLがある場合,コマンド行 のものが最初に回収されます.fileHTMLドキュメントにする必要 はありません(しかし,害が無い場合です)—URLだけ順番にリストアップ されている場合はそれで十分です.

しかし,‘--force-html’を指定した場合,ドキュメントは‘html’と 見なされます.この状況では相対的なリンクに問題がある可能性もあり,それ は,<base href="url">をドキュメントに加えたり,コマンドラ インで‘--base=url’を指定することで解決できます.

-F
--force-html

ファイルから入力を読み込むとき,HTMLファイルとして扱うことを強制し ます.これで,ローカルディスクの既存のHTMLファイルからの相対的なリ ンクを,HTML<base href="url">を加えたり, ‘--base’コマンドラインオプションを使用することで回収できるようにな ります.

-B URL
--base=URL

-F’と結合して使用されるとき,‘-i’で指定されるファイル内の相 対リンクにURLを前置します.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5 ダウンロード・オプション

--bind-address=ADDRESS

クライアントのTCP/IP接続を作成するとき,ローカルマシンのADDRESS にbindします.ADDRESSはホスト名またはIPアドレスとして指定してもか まいません.このオプションはマシンが複数のIPに連結されている場合,役に 立つはずです.

-t number
--tries=number

再試行の回数をnumberに設定します.無限の再試行のため,0や ‘inf’を指定してください.デフォルトの再試行は20回で,例外として “connection refused”や“not found” (404)のような致命的なエラーでは再 試行しません.

-O file
--output-document=file

ドキュメントは適切なファイルに書かれず,全て一緒に連結されてfile に書き込まれます.fileとして‘-’が使用されている場合,ドキュ メントは標準出力に書き込まれ,リンクの変換は利用不可能になります. (‘-’という名前のファイルに出力するために‘./-’を使用して下さい.)

-k’との組み合わせは,単一のドキュメントだけに限定されています.

-nc
--no-clobber

同じディレクトリに一回以上ファイルがダウンロードされる場合,Wgetの動作 は,‘-nc’を含むいくつかのオプションに依存します.繰り返しのダウン ロードで,ローカルファイルは破壊される(clobbered)こともあれば,上 書きされることもあります.それ以外ではそのまま残ります.

-N’,‘-nc’,または‘-r’を用いずにWgetを実行するとき,同 じディレクトリにダウンロードされる同じファイルは,オリジナルがそのまま fileのコピーとなり,二番目のコピーは‘file.1’と命名され ます.ファイルが再びダウンロードされた場合は,三番目のコピーは ‘file.2’となり,以下同様になります.‘-nc’が指定された場 合はこの動作が抑制され,Wgetはより新しい‘file’のコピーのダウ ンロードを拒否します.このため,“no-clobber”は実際にこのモード の間違った名称です—(数字の接尾子で既に破壊を妨げているので)それは破壊 を妨げるのではなく,むしろ保存の複数のバージョンを持たないということで す.

-r’を用い,‘-N’や‘-nc’を用いずにWgetを実行したとき,ファ イルの再度のダウンロードは,古いものを単純に新しいコピーで上書きします. ‘-nc’を加えた場合はこの動作は妨げられ,オリジナルのバージョン保存 し,サーバ上のあらゆるより新しいコピーを無視します.

-N’を用い,‘-r’を用いるまたは用いないで,Wgetを実行するとき, ローカルとリモートのファイルのタイムスタンプとサイズに依存して,より新 しいファイルのダウンロードを実行するかどうかを決定します (see section タイムスタンプ).‘-nc’は‘-N’と同時に指定できません.

-nc’が指定されている場合,‘.html’または‘.htm’の接尾子を 持つファイルは,Webから回収されているかのようにローカルディスクからロー ドされて解析されることに注意して下さい.

-c
--continue

部分的にダウンロードされたファイルの取得を続けます.これは,前回のWget のインスタンスや,他のプログラムで開始したダウンロードを完了したいとき 便利です.例えば以下のようにします.

 
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z

現在のディレクトリに‘ls-lR.Z’という名前のファイルがある場合,Wget は,それがリモートファイルの最初の位置だと考え,ローカルファイルと同じ 長さのオフセットから回収を続けるようサーバに依頼します.

接続が中断されたファイルのダウンロードを再試行するために,現在のWget呼 び出しを行いたいだけの場合は,このオプションを指定する必要がないことに 注意してください.これはデフォルトの動作です.‘-c’は,Wgetの今回の 呼び出しの前に開始したダウンロードの再開で,そのローカルファイル がまだ完全ではないものにのみに効果があります.

-c’を用いない場合,前の例では,リモートファイルを ‘ls-lR.Z.1’ にダウンロードし,途中で切られた‘ls-lR.Z’ファイル はそのまま残ります.

Wget 1.7以降を用いて‘-c’を空でないファイルで使用する場合,サーバが 継続ダウンロードをサポートしていないことが判明した場合は,Wgetは最初か らのダウンロードの開始を拒否するので,その影響で既存の内容がだめになり ます.本当に最初からダウンロードを開始したい場合は,ファイルを削除して ください.

また,Wget 1.7以降を用いて‘-c’をサーバのファイルと同じ大きさでない ファイルで使用する場合,Wgetはファイルのダウンロードを拒否し,そのこと を説明メッセージを出力します.サーバのファイルがローカルのものより小さ いときも同じことが生じます—“続けること”に意味がなく,ダウンロードを 行わないためです.

反対に,‘-c’を使用しているときは,ローカルより大きいサーバのファイ ルは不完全なダウンロードとみなされ,((リモートの)長さ - (ローカル の)長さ)バイトのみダウンロードされ,ローカルファイルの終りにくっつけら れます.この動作は場合によっては望ましくないものです—例えば,データコ レクションやログファイルに追加された新しい部分をダウンロードするために, ‘wget -c’を使用することが可能です.

しかし,ファイルが,追加されているのではなく,変更されて いてサーバのものより大きい場合,おかしなファイルになります.Wgetには, ローカルのファイルがリモートファイルの前段が本当に有効だということを検 証する方法がありません.‘-r’と組合せて‘-c’を使用するとき,す べてのファイルが"不完全なダウンロード"の候補と考慮されるので,このこと に特に注意する必要があります.

-c’を使用してみた場合におかしなファイルを得るもう一つの例は,ロー カルファイルに“transfer interrupted”文字列を挿入する,不完全な HTTPプロキシを使用している場合です.将来は,“rollback”オプション がこの状況を扱うために追加されるかもしれません.

-c’は,FTPサーバとRangeヘッダをサポートするHTTP サーバのみで動作することに注意してください.

--progress=type

使用したい進行状況表示の形式を選択します.正当な表示は“ドット”と “バー” です.

“バー”の表示がデフォルトで使用されます.それは,回収の状態を表示する ためASCIIのプログレスバー表示(別名“温度計”の表示)を描画します. 出力がTTYではない場合,“ドット”のバーがデフォルトで使用されます.

“ドット”表示に切替えるためには‘--progress=dot’を使用してください. それは,画面上にドットを出力することで回収を追跡し,それぞれのドットは ダウンロードされたデータの固定量を表現しています.

ドットでの回収を使用している時,‘dot:style’のような形式で スタイル(style)を指定することもできます.異なるスタイルは一つのドッ トに異なる意味を割り当てます.defaultスタイルでは,それぞれのドッ トは1Kを表現し,1クラスタに10ドットがあり,一行に50ドットあります. binaryスタイルでは,より“コンピュータ”ライクの方針になっていま す—ドットは8K,クラスタは16ドット,そして一行は48ドットになります(一 行が384Kです).megaスタイルは非常に大きなファイルのダウンロード に適しています—それぞれのドットは64Kの回収を表現していて,1クラスタに 8ドットあり,それぞれの行には48ドットになります(そのため,それぞれの行 は3M含まれています).

.wgetrc’のprogressコマンドで,デフォルトの形式を設定するこ とが可能であることに注意して下さい.その設定は,コマンドラインで上書き されるかもしれません.例外として,出力がTTYではないとき,“ドット” の プログレスバーが“バー”に優先されます.バーの表示を強制したい場合は ‘--progress=bar:force’を使用してください.

-N
--timestamping

タイムスタンプを開始します.詳細は,See section タイムスタンプ.

-S
--server-response

HTTPサーバが送るヘッダを出力したり,FTPサーバに返事を送ったり します.

--spider

このオプションで呼び出された場合,Wgetはウェブスパイダー(spider) として動作し,それにはページをダウンロードせずに存在を調査するという意 味があります.例えば,ブックマークの調査にWgetを使用することが可能です.

 
wget --spider --force-html -i bookmarks.html

この機能には,Wgetを真のウェブスパイダーの能力に近づけるため,非常に多 くの仕事がさらに必要です.

-T seconds
--timeout=seconds

ネットワークのタイムアウトをseconds秒に設定します.これは, ‘--dns-timeout’,‘--connect-timeout’,そして ‘--read-timeout’を同時に指定することと同じです.

ネットワークとの通信時に,タイムアウトを調査し,時間が超過した場合は処 理を中止します.これで,中途半端な読み込みや無限接続を避けることになり ます.デフォルトで利用可能なタイムアウトは,読み込みのタイムアウトの 900秒だけです.タイムアウトを0に設定することで,タイムアウトの調査を完 全に利用不可能にします.何を行っているか分からない場合,タイムアウトに 関連するオプションを設定しないのが最善でしょう.

タイムアウトに関聯するすべてのオプションは,10進数の値を受け入れ,小数 の値も同様に受け入れます.例えば,‘0.1’秒は,タイムアウトの選択と しては(無意味ですが)正当なものです.小数のタイムアウトは,サーバの応答 時間の調査や,ネットワークの待ち時間のテストで役に立ちます.

--dns-timeout=seconds

DNSのルックアップタイムアウトをseconds秒に設定します.指定された 時間内に完了しないDNSのルックアップは異常終了になります.デフォルトでは, システムライブラリで実装されていない限り,DNSのルックアップにタイムアウ トは存在しません.

--connect-timeout=seconds

接続タイムアウトをseconds秒に設定します.確立に時間がかかるTCP接 続は中止されます.デフォルトでは,システムライブラリで実装されていない 限り,接続タイムアウトは存在しません.

--read-timeout=seconds

読み込み(と書き出し)のタイムアウトをseconds秒に設定します.ここで のタイムアウトの“タイム”とはアイドルタイム(idle time)を意味しま す.つまり,ダウンロード時に指定した秒数以上データを全く受信していない 場合,読み込みに失敗し,ダウンロードが再び開始されます.このオプション は,ダウンロード時には直接影響しません.

もちろん,リモートのサーバがこのオプションの要求より短い接続終了時間を 設定している可能性もあります.読み込みタイムアウトのデフォルト値は900秒 です.

--limit-rate=amount

ダウンロードの速度をamountバイト毎秒に制限します.amountは バイト表現に,‘k’の接尾子を付けたキロバイトや,‘m’の接尾子を 付けたメガバイトでもかまいません.例えば,‘--limit-rate=20k’で回収 のレートを20KB/sに制限します.理由があってWgetに利用可能な帯域をすべて 使用されたくないとき便利です.

このオプションでは,10進数が利用可能で,通常は乗数の接尾辞を追記します. 例えば,‘--limit-rate=2.5k’は正当な設定値になります.

Wgetは,指定したレート以上の時間をかけないよう,ネットワークの読み込み 後に適切な時間スリープすることで制限を実装していることに注意して下さい. 結局こうすることで,TCPの転送を指定したレートにだいたい落ち着きます. しかし,このバランスを達成するまで時間がかかるかもしれないので,制限さ れたレートが非常に小さなファイルでうまく動作しない場合でも驚かないでく ださい.

-w seconds
--wait=seconds

回収の間に指定した秒数待ちます.要求の生成を少なくすることでサーバの負 荷を軽くするので,このオプションの使用を推奨します.秒の代わりに時間を mで後置した分,hを後置した時間,dを後置した一日で 指定可能です.

このオプションに大きな値を指定すると,ネットワークや接続先のホストが落 ちた場合,Wgetは再試行する前にネットワークエラーの修復が期待される程度 の妥当な時間待つことができるので役に立ちます.

--waitretry=seconds

すべての回収の間ではなく,ダウンロードに失敗したときのみWgetを待 たせたい場合,このオプションを使用することが可能です.Wgetは linear backoffを使用していて,与えられたファイルでの最初の失敗の 後に一秒待ち,そのファイルで二番目に失敗した後に二秒待つようにして,指 定された最大secondsまで増加するようになっています.このため,10 の値は,(1 + 2 + ... + 10) = 55 秒まで,Wgetは一つのファイルにつき実際 に待つことになります.

このオプションは,大域的な‘wgetrc’ファイルでデフォルトで開始してい ることに注意してください.

--random-wait

ウェブサイトによっては,Wgetのような回収プログラムを識別するために,要 求と要求の間の時間による統計的に重要な類似を検索するため,ログ解析を実 行する可能性があります.このオプションは,‘--wait’オプションを使用 して指定したwaitを用いて,0から2の間にwait秒を掛けて変化さ せ,要求と要求の間の時間を変動させ,そのような解析からWgetの存在を隠す ようになっています.

有名なコンシュマープラットフォームでの開発に捧げられている出版物の最近 の論文では,これをこっそりと解析するコードを提供しています.その著者は, 自動的な回収プログラムでDHCPで提供するアドレスを悪意を持って変更するも のをブロックすることを確実にするため,クラスCのアドレスレベルをブロック することを提案しています.

--random-wait’オプションは,その動作を行なうウェブサイトから多く の無関係なユーザをブロックするような無差別な推奨があることを示唆してい ます.

--no-proxy

たとえ適切な*_proxy環境変数が定義されている場合でも,プロキシを 使用しません.

Wgetでプロキシを使用する際の詳細は,プロキシ.

-Q quota
--quota=quota

自動回収に対するダウンロードクォータを指定します.値は(デフォルトで)バ イト,(‘k’の後置で)キロバイト,(‘m’の後置で)メガバイトで指定 可能です.

クォータは単一ファイルのダウンロードで効果が無いことに注意してください. そのため,‘wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz’のように 指定した場合,‘ls-lR.gz’全体がダウンロードされます.複数の URLがコマンドラインで指定されたときも,同様なことが生じます.しか し,回収が再帰的なときや入力ファイルからのときにクォータは尊重されます. このため,安全に‘wget -Q2m -i sites’と入力ことができます—ダウン ロードはクォータ以上になったとき中止します.

クォータを0や‘inf’に設定すると,ダウンロードクォータは無制限にな ります.

--no-dns-cache

DNSルックアップのキャッシュを停止します.通常,WgetはDNSから検索したIP アドレスを記憶しているので,回収している同じホスト群(通常は小さい)に対 してDNSサーバに何度も問い合わせる必要はありません.このキャッシュは,メ モリだけに存在します.新たにWgetを実行すると,再びDNSに問い合わせします.

しかし,Wgetのようなちょっとしたアプリケーションの実行の間でも,ホスト 名のキャッシュが好ましくない状況があることが報告されています.このオプ ションを用いると,Wgetは新たな接続を作成するたびに新たにDNSを検索します (より正確には,新たにgethostbynamegetaddrinfoを呼び出し ます).このオプションは,名前解決ライブラリやNSCDのような外部キャッシュ のレイヤーによって実行されるキャッシュに影響しないことに注意して 下さい.

このオプションの動作を正確に理解していない場合,おそらくこのオプション は不要でしょう.

--restrict-file-names=mode

リモートのURLで見つかった文字で,そのURLから生成されるローカルファイル 名が存在する可能性がある文字を変更します.このオプションで制限され る(restricted)文字はエスケープされます.すなわち,‘%HH’で置換され, ‘HH’は制限された文字に対応する16進数です.

デフォルトで,通常は出力不可能な制御文字同様,オペレーティングシステム 上のファイル名の一部として有効ではない文字を,Wgetはエスケープします. このオプションは,ネイティブなパーティションではないところにダウンロー ドしたり,制御文字のエスケープを利用不可能にしたいなどの理由で,これら のデフォルトを変更するときに役に立ちます.

モードが“unix”に設定されているとき,Wgetは,文字‘/’と0–31の範囲 と128–159の範囲の制御文字をエスケープします.これはUnixに似たOS上での デフォルトです.

モードが“windows”に設定されているとき,Wgetは,文字‘\’, ‘|’,‘/’,‘:’,‘?’,‘"’,‘*’,‘<’, ‘>’と0–31の範囲と128–159の範囲の制御文字をエスケープします.これ に加え,windowsモードでのWgetは,ローカルファイル名でのホストとポートの 分離に‘:’の代わりに‘+’を使用し,残りのファイル名のクエリ部分 の分離に‘?’の代わりに‘@’を使用します.このため,unixモードで ‘www.xemacs.org:4300/search.pl?input=blah’として保存されるURL は windowsモードでは‘www.xemacs.org+4300/search.pl@input=blah’として 保存されます.このモードはWindowsではデフォルトです.

unix,nocontrol’のように,モードに‘,nocontrol’を追加した場合, 制御文字のエスケープも停止します.ファイル名の制限モードとして使用する OSの選択に影響を与えないまま,制御文字のエスケープを停止するために, ‘--restrict-file-names=nocontrol’を使用することが可能です.

-4
--inet4-only
-6
--inet6-only

IPv4またはIPv6のアドレスに強制的に接続します.‘--inet4-only’または ‘-4’を用いると,WgetはIPv4のホストだけに接続し,DNSのAAAAレコード は無視し,URLで指定されているIPv6のアドレスへの接続は拒絶します.反対に, ‘--inet6-only’または‘-6’を用いると,IPv6のホストだけに接続し, AレコードとIPv4のアドレスを無視します.

いずれのオプションも一般的に必要とされるべきです.デフォルトで,IPv6対 応のWgetはホストのDNSレコードで指定されているアドレスファミリを使用しま す.DNSがAレコードとAAAAレコードを指定しているWgetは接続可能なものが見 つかるまで,順番に試していきます.

これらのオプションは,両方のファミリを使用しているシステム上で,意識的 にIPv4またはIPv6のアドレスファミリに強制させるために使用することが可能 で,通常はデバッグの目的やおかしくなったネットワーク構成を処理するため に使用します.‘--inet6-only’と‘--inet4-only’は,同じコマンド で一つだけしか指定できません.IPv6のサポート無しでコンパイルされたWget では,何れのオプションも利用できません.

--prefer-family=IPv4/IPv6/none

選択可能なアドレスがあたえられるとき,最初に指定されているアドレスファ ミリのアドレスに接続します.IPv4アドレスがデフォルトで選択されます.

IPv4のネットワークで,IPv6とIPv4の両方のアドレス解決されたホストにアク セスするとき,こうすることで,偽のエラーを避けて接続を試みます.例えば, ‘www.kame.net’が‘2001:200:0:8002:203:47ff:fea5:3085’と ‘203.178.141.194’だと分かったときそうなります.好ましいアドレスファ ミリーがIPv4のときIPv4アドレスが最初に使用されます.好ましいアド レスファミリーがIPv6のときIPv6アドレスが最初に使用されます. noneの値を指定する場合,DNSが返したアドレスの順序を変更せずに使 用します.

-4’と‘-6’とは異なり,このオプションでは特定のアドレスファミ リへのアクセスを禁止せず,アクセスするアドレスの順序だけを変更し ます.また,このオプションで実行される順序変更が安定している (stable)ことに注意してください—同じアドレスファミリの順序には影響し ません.つまり,すべてのIPv4関連の順番とすべてのIPv6アドレスの順番は, いずれの状況でも,元のまま残っています.

--retry-connrefused

“connection refused”が一時的なエラーだと想定し,再び接続を試みます. 通常,サイトに接続できないURLについてWgetは諦め,それは接続の失敗はサー バが完全に動作していないので,再挑戦に意味が無いからです.このオプショ ンはあてにならないサイトのミラーリングのためで,そのようなサーバはちょっ との時間だけ見えなくなってしまいがちです.

--user=user
--password=password

FTPHTTPの両方でのファイルの回収で,ユーザ名をuserに, パスワードをpasswordに指定します.これらのパラメータは,FTP 接続に対しては‘--ftp-user’と‘--ftp-password’オプションを, HTTP接続に対しては‘--http-user’と‘--http-password’オプショ ンを使用することで,それに優先させることが可能です.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.6 ディレクトリオプション

-nd
--no-directories

再帰的に回収するときにディレクトリの階層を作成しません.このオプション を開始すると,全てのファイルは現在のディレクトリに上書き無しで保存され ます(名前が一度以上現れる場合,ファイル名は拡張子‘.n’が付きます).

-x
--force-directories

-nd’の反対です—階層無しで作成されていても,ディレクトリ階層を作 成します.例えば,‘wget -x http://fly.srk.fer.hr/robots.txt’はファ イルを‘fly.srk.fer.hr/robots.txt’にダウンロードします.

-nH
--no-host-directories

ホストを前置したディレクトリの生成を不可にします.デフォルトで,Wgetを ‘-r http://fly.srk.fer.hr/’を用いて呼び出した場合, ‘fly.srk.fer.hr/’で始まるディレクトリ構造を作成します.このオプショ ンはそのような動作を不可にします.

--protocol-directories

ローカルファイル名のディレクトリとしてプロトコル名を使用します.例えば, このオプションを用いることで,‘wget -r http://host’は ‘host/...’ではなく‘http/host/...’に保存されます.

--cut-dirs=number

ディレクトリコンポーネントのnumberを無視します.再帰的回収で保存 されたディレクトリ上の,きめ細かい制御でこれは役に立ちます.

例えば,‘ftp://ftp.xemacs.org/pub/xemacs/’ディレクトリの取得すると します.‘-r’で回収した場合,‘ftp.xemacs.org/pub/xemacs/’以下 にローカル保存されます.一方,‘-nH’オプションは ‘ftp.xemacs.org/’の部分を削除し,‘pub/xemacs’で保存します.こ れが‘--cut-dirs’が役に立つところです.それで,Wgetはリモートディレ クトリコンポーネントのnumber(数)を“見”ないようなります. ‘--cut-dirs’オプションがどのように動作するかを示す例は以下のように なります.

 
No options        -> ftp.xemacs.org/pub/xemacs/
-nH               -> pub/xemacs/
-nH --cut-dirs=1  -> xemacs/
-nH --cut-dirs=2  -> .

--cut-dirs=1      -> ftp.xemacs.org/xemacs/
...

ディレクトリ構造を取り除きたいだけの場合,このオプションは‘-nd’と ‘-P’の組合せに似ています.しかし,‘-nd’とは異なり, ‘--cut-dirs’はサブディレクトリを失いません—例えば,‘-nH --cut-dirs=1’を用いた場合,‘beta/’サブディレクトリは,期待通りに ‘xemacs/beta’に配置されます.

-P prefix
--directory-prefix=prefix

ディレクトリプレフィクスをprefixに設定します.ディレクトリプ レフィクス(directory prefix)は,他の全てのファイルとサブディレクトリが 保存されるディレクトリで,すなわち回収ツリーのトップになります.デフォ ルトは‘.’ (カレントディレクトリ)です.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.7 HTTPオプション

-E
--html-extension

application/xhtml+xml’や‘text/html’形式のファイルがダウンロー ドされ,URLが正規表現の‘\.[Hh][Tt][Mm][Ll]?’で終わらない場合,この オプションは接尾子‘.html’をローカルのファイル名に後置します.例え ば,‘.asp’ページを使用したリモートサイトをミラーし,手元のApach サー バで閲覧可能なミラーにしたい場合,これは役に立ちます.もう一つのこの優 れた利用方法は,CGIが生成したものをダウンロードするときです. ‘http://site.com/article.cgi?25’のようなURLは, ‘article.cgi?25.html’として保存されます.

この方法で変更されたファイル名は,Wgetはローカルの‘X.html’ ファイルとリモートのURL ‘X’と一致するかどうか分からないため (それは,URLが生成する‘text/html’形式や ‘application/xhtml+xml’形式の出力が分からないためです.),再びダウ ンロードするたびにサイトをミラーリングすることに注意してください.この 再ダウンロードを避けるため,ファイルのオリジナルバージョンが ‘X.orig’として保存されるように,‘-k’と‘-K’を使用す る必要があります(see section 再帰的な回収オプション).

--http-user=user
--http-password=password

HTTPサーバでのユーザ名をuserに,そしてパスワードを passwordに指定します.試みる形式によって,Wgetはbasic (安 全でない),またはdigest認証手法のいずれかを用いて符号化します.

もう一つの方法は,ユーザ名とパスワードをURL自身に書く方法です (see section URLの書式).いずれの手法でも,psを実行することで,パス ワードがばれてしまいます.パスワードが見えないようにするため.それらを ‘.wgetrc’や‘.netrc’に保存し,それらのファイルをchmodを 使用して他のユーザから確実に保護してください.パスワードが本当に重要な 場合,それらのファイルにも残さないようにして下さい—ファイルを編集し, Wgetがダウンロードを開始した後で削除して下さい.

--no-cache

サーバサイドのキャッシュを不可にします.この場合Wget は,リモートサービ スからファイルを得るため,キャッシュバージョンを返す代わりにリモートサー バに適切なディレクティブ(‘Pragma: no-cache’) を送ります.これは, プロキシサーバの時代遅れのドキュメントを回収し,クリアするときに特に役 立ちます.

キャッシュはデフォルトで可能になっています.

--no-cookies

クッキーを使用不可能にします.クッキーはサーバ側の状態を管理するメカニ ズムです.サーバはSet-Cookieヘッダを使用してクライアントにクッキー を送り,クライアントはそれ以降の要求で同じクッキーを使用して応答します. クッキーはサーバの所有者が訪問者の追跡を保存し,サイトがこの情報を交換 することを可能にするので,それらをプライバシーの侵害と考える人もいます. デフォルトはクッキーの使用です.しかし,クッキーの保存はデフォル トではありません.

--load-cookies file

最初のHTTPの回収の前にfileからクッキーをロードします.file の書式は,少なくともUnixバージョンのNetscapeとMozillaで使用されているも のです.

サイトの内容にアクセスするためにログインすることを要求するサイトをミラー リングする時,通常,このオプションを使用します.ログインのプロセスは, 通常,ウェブサーバがHTTPクッキーを発行し,回収し,証明書を検証する ことで動作します.クッキーは,サイトの一部にアクセスしたときブラウザが 再送信し,個人識別情報を提供します.

サイトのミラーリングで,サイトと通信する時にウェブブラウザが送るものと 同じクッキーをWgetに送るよう要求します.これは,‘--load-cookies’ で達成されます—単純にWgetに‘cookies.txt’ファイルがある場所を示し, そうすることでブラウザが同じ状況で送るものと同じクッキーを送ります.異 なるブラウザはテキストのクッキーファイルを異なる場所に保存します.

Netscape 4.x.

クッキーは‘~/.netscape/cookies.txt’になります.

Mozilla and Netscape 6.x.

Mozillaのクッキーファイルも‘cookies.txt’という名前で,プロファイル のディレクトリの‘~/.mozilla’の下のどこかにあります.フルパスは ‘~/.mozilla/default/some-weird-string/cookies.txt’のような場 所で見つかります.

Internet Explorer.

ファイルメニューの,インポートとエクスポートの,エクスポートクッキーを 使用することで,Wgetが使用可能なクッキーファイルを生成可能です.これは, Internet Explorer 5でテストしました.それより前のバージョンでの動作は保 証しません.

その他のブラウザ

クッキーを作成したものと異なるブラウザを使用している場合,場所を指定可 能,またはWgetが期待するNetscapeのフォーマットのクッキーファイルを生成 することが可能な場合のみ動作します.

--load-cookies’が使用不可能な場合,代替方法もあります.ブラウザが “クッキーマネージャ”をサポートしている場合,ミラーしているサイトにア クセスする時,使用されているクッキーを見るためにそれを使用することが可 能です.名前とクッキー名を書き下ろし,手動でこれらのクッキーを送るよう Wgetに命令し,“公式の”クッキーサポートを回避してください.

 
wget --no-cookies --header "Cookie: name=value"
--save-cookies file

修了する前にfileにクッキーを保存します.つまり,既に期限切れのクッ キーや破棄する時間が指定されていないクッキー(“セッション・クッキー”と 呼ばれるもの)は保存されません.‘--keep-session-cookies’も参照して ください.

--keep-session-cookies

指定されているとき,‘--save-cookies’でセッションクッキーも保存しま す.セッションクッキーは,メモリに保存されブラウザを修了したときに消す ものなので,通常は保存されません.それを保存すると,ログを必要とするサ イトや,ページアクセスが可能になる前にホームページを訪問するとき便利で す.このオプションを用いると,複数回Wgetを実行しても,サイトが単一のブ ラウザセッションだと思っている限り,単一セッションだと想定します.

クッキーファイルのフォーマットには,通常のセッションクッキーを書き込め ないため,Wgetはタイムスタンプの有効期限を0で印を付けます.Wgetは ‘--load-cookies’で,それらをセッションクッキーとして認識しますが, それ以外のブラウザは混乱する可能性があります.また,そのようにロードさ れたクッキーは他のセッションクッキーとして扱われ,もう一度保存するため に‘--save-cookies’を指定したい場合は, ‘--keep-session-cookies’を再び使用する必要があるということを意味す るので,注意して下さい.

--ignore-length

残念ながら,HTTPサーバ(より正確にはCGIプログラム)には,偽の Content-Lengthヘッダを送るものもあり,それではドキュメント全てが 回収されないので,Wgetがおかしくなります.Wgetが同じドキュメントを何度 も何度も回収し,そのたびに(通常でない)接続が同じバイト数で閉じている報 告を得る場合,この症状を見付けることが可能です.

このオプションを用いた場合,WgetはContent-Lengthヘッダを—まる で存在しないかのように—無視します.

--header=header-line

HTTPリクエストのたびに,ヘッダの残りにheader-lineを追加して 送ります.提供するヘッダはそのまま送られます.つまり,コロンで分離され た名前と値をふくめる必要があり,改行を含めてはならないことを意味します.

一つ以上の追加ヘッダを,一回以上‘--header’を指定することで定義して もかまいません.

 
wget --header='Accept-Charset: iso-8859-2' \
     --header='Accept-Language: hr'        \
       http://fly.srk.fer.hr/

ヘッダ値として空の文字列を指定すると,以前ユーザが定義した全てのヘッダ をクリアします.

Wget 1.10では,このオプションは,通常自動的に生成されるヘッダに優先させ るために使用することが可能です.以下の例は,Wgetにローカルホストに接続 させる命令ですが,Hostヘッダに‘foo.bar’を指定します.

 
wget --header="Host: foo.bar" http://localhost/

1.10以前のWgetのバージョンでは,‘--header’の使用で重複するヘッダを 送信します.

--proxy-user=user
--proxy-password=password

プロキシサーバの認証のため,ユーザ名userとパスワード passwordを指定します.Wgetはこれらをbasic認証手法で符号化 します.

セキュリティへ考慮は,‘--http-password’に関連するものによく似てい ます.

--referer=url

HTTPの要求に‘Referer: url’ヘッダを含めます.常に対話的なウェブブ ラウザでの回収を期待していて,Refererがそれを示すページの一つに設定され ているときのみ正しく出力するサーバサイドプロセスを用いたドキュメントの 回収で役に立ちます.

--save-headers

HTTPサーバがファイルにつけて送ったヘッダを空白行で分けて,実際の内 容の前につけて保存します.

-U agent-string
--user-agent=agent-string

agent-stringとしてHTTPサーバを識別します.

HTTPプロトコルは,クライアントがUser-Agentヘッダフィールド を用いた自分自身の識別を許可しています.これでWWWソフトウェアの区 別が可能となり,通常のプロトコル違反の追跡目的には十分です.Wgetは通常 ‘Wget/version’として識別され,versionはWgetの現在のバー ジョンナンバーです.

しかし,サイトによってはUser-Agentが供給する情報によって出力を調 整するポリシーを課すことが知られています.理論上,これはそんなに悪い考 えではないのですが,(歴史的に)Netscapeや,更に頻繁にMicrosoft Internet Explorer以外のクライアントに情報の提供を拒否するように乱用されてもいま した.このオプションで,Wgetが発行するUser-Agentを変更できます. このオプションの使用は,行っていることを本当に知らない場合は思い留まっ てください.

--user-agent=""’で空のユーザエージェントを指定すると,Wget は HTTPリクエストでUser-Agentヘッダを送りません.

--post-data=string
--post-file=file

すべてのHTTPリクエストと,リクエストの本文に指定されたデータを送信する 手段としてPOSTを使用します.--post-datastringをデータと して送信し,--post-filefileの内容を送信します.それ以外 では,同じように動作します.

Wgetは,POSTするデータの大きさを前もって知っておく必要があることに注意 して下さい.このため,--post-fileの引数は通常のファイルにする必 要があります.FIFOや‘/dev/stdin’のようなものを指定すると動作しませ ん.HTTP/1.0に起因するこの制限を,回避する方法は全く分かりません. HTTP/1.1ではリクエストの長さを前もって知る必要が無いchunked転送が 導入されましたが,クライアントはHTTP/1.1サーバと通信していることが分か るまで,chunkedを使用することはできません.また,レスポンスを受信するま でそれは分からないので,完了するまでリクエストを順次送信する必要があり ます–鶏と卵の問題です.

注意:POSTリクエストが完了した後に,Wgetがリダイレクトされる場合,POST データをリダイレクトされたURLに送信しません.これは,POSTを処理するURL が通常のページにリダイレクトを用いて応答するためで,それはPOSTを要求し たり受け入れたりしません.この動作が最適かどうかは完全に明確ではありま せん.うまく動作しなければ,将来変更されるかもしれません.

以下の例は,POSTを使用しているサーバのログをとらせ,要求されている,お そらく認証されたユーザだけがアクセス可能なページをダウンロードを行なう 方法を示します.

 
# Log in to the server.  This can be done only once.
wget --save-cookies cookies.txt \
     --post-data 'user=foo&password=bar' \
     http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
     -p http://server.com/interesting/article.php

ユーザ認証をそれ以降ずっと利用する,サーバがセッションクッキーを使用し ている場合,上記の例では‘--save-cookies’では(ブラウザでも)保存され ず,‘cookies.txt’が空になるため,うまく動作しないでしょう.この状 況では,セッションクッキーの保存を強制的に行うため, ‘--save-cookies’と共に‘--keep-session-cookies’も使用して下さ い.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.8 HTTPS (SSL/TLS) オプション

暗号化されたHTTP (HTTPS)のダウンロードをサポートするために,外部のSSLラ イブラリ,現在はOpenSSLを使用してWgetをコンパイルする必要があります. WgetがSSLサポート無しでコンパイルされている場合,以下のオプションはすべ て利用できません.

--secure-protocol=protocol

セキュアプロトコルの使用を選択します.正当な値は,‘auto’, ‘SSLv2’,‘SSLv3’,そして‘TLSv1’です.‘auto’が使用さ れている場合,SSLライブラリは,適切なプロトコルを自動的に自由に選択でき, SSLv2のあいさつを送って,SSLv3とTLSv1のサポートを公表することで達成しま す.これはデフォルトです.

SSLv2’,‘SSLv3’,または‘TLSv1’を使用した場合,対応する プロトコルを強制的に使用します.これは,古かったりバグがあったりする SSLサーバの実装と通信するとき,OpenSSLが正しいプロトコルのバージョンを 確実に選択するので役に立ちます.幸いにも,そのようなサーバは滅多にあり ません.

--no-check-certificate

利用可能な認証局に対する証明書サーバを調査しません.また,証明書に記載 されている共通の名前にマッチするホスト名のURLを要求しません.

Wget 1.10では,デフォルトはサーバの認証局を照合し,認証局を認識し,SSL のハンドシェークを破棄し,照合に失敗した場合はダウンロードを中止します. これでより安全なダウンロードを提供しますが,以前のWgetのバージョンで動 作さしていたサイトでの互換性が壊れ,特に自己署名,期限切れ,または,そ の他の無効な証明書を使用しているものです.このオプションで,“不安全” な処理モードを強制し,証明書の照合エラーを警告に変換し,処理の続行を可 能とします.

“certificate verification”エラーになったり,“common name doesn’t match requested host name”と言われる場合,このオプションを使用して照合 をとばして,ダウンロードを続行することが可能です.別の方法でサイ トの認証を確信している場合や,認証の照合を本当に気にしない場合だけ,こ のオプションを使用してください.秘密や重要なデータを送信するとき,認証 調査を行わないのは,ほとんどいつも悪い発想です.

--certificate=file

fileにあるクライアントの証明書を使用します.これは,サーバに接続 しようとしているクライアントから証明書を要求するように構成されているサー バで必要です.通常,証明書は要求されないのでこのスイッチはオプションで す.

--certificate-type=type

クライアントの証明書の形式を指定します.正当な値は‘PEM’ (デフォル トで想定されます)と‘DER’で,それは‘ASN1’としても知られていま す.

--private-key=file

秘密鍵をfileから読み込みます.これで証明書から取り出したファイル にある秘密鍵を提供することが可能になります.

--private-key-type=type

秘密鍵の形式を指定します.受け入れられる値は‘PEM’ (デフォルト)と ‘DER’です.

--ca-certificate=file

fileを,照合の対となる認証局(“CA”)にバンドルされているファイル として使用します.証明書はPEM書式にする必要があります.

このオプションを使用しないと,WgetはCA証明書をシステム指定の場所で探し, それはOpenSSLのインストール時に選択された場所です.

--ca-directory=directory

PEM書式のCA証明書が含まれるディレクトリを指定します.それぞれのファイル には一つのCA証明書が含まれていて,ファイル名は証明書から得られるハッシュ 値が基になっています.これは,証明書ディレクトリを,OpenSSLで提供される c_rehashユーティリティで処理することで実施されます.たくさんの証 明書がインストールされているとき,Wgetは要求に応じて証明書を取ってくる ので,‘--ca-certificate’より‘--ca-directory’の使用がより効果 的です.

このオプションを使用しないと,WgetはCA証明書をシステム指定の場所で探し, それはOpenSSLのインストール時に選択された場所です.

--random-file=file

/dev/random’が無いシステムで,疑似乱数を生成する種となる乱数デー タのソースとしてfileを使用します.

そのようなシステムでは,SSLライブラリが外部の乱数初期化ソースを必要しま す.ランダムさはEGD (後述の‘--egd-file’を参照)で提供されたり,ユー ザが指定した外部ソースから読み込んでもかまいません.このオプションが指 定されていない場合,ランダムデータを$RANDFILEで探し,それも設定 されていない場合,‘$HOME/.rnd’で探します.これら全てが利用不可能な 場合,SSLの暗号化は,まず使用できないでしょう.

“Could not seed OpenSSL PRNG; disabling SSL.”というエラーになった場合, 上記の手法などを利用して乱数データを提供すべきです.

--egd-file=file

EGDソケットとしてfileを使用します.EGDはEntropy Gathering Daemonを意味し,様々な予想不可能なシステムソースからデータを収集し,そ れを必要とする外部プログラムで利用可能にするユーザ空間のプログラムです. SSLライブラリのような暗号化ソフトウェアは,暗号的に強い鍵を生成するため に使用する乱数生成器の種として,繰り返しの無いランダムさをもつソースが 必要です.

OpenSSLで,RAND_FILE環境変数を使用したエントロピーの独自ソースを 指定することが可能となります.この変数が設定されていない場合や,指定さ れたファイルでは十分なランダムさが得られない場合は,OpenSSLは乱数データ をこのオプションで指定されているEGDソケットから読み込みます.

このオプションが指定されていない(そして,等価なスタートアップコマンドが 使用されていない)場合,EGDを使用しません.EGDは,‘/dev/random’をサ ポートする最近のUnixでは不用です.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.9 FTPオプション

--ftp-user=user
--ftp-password=password

FTPサーバのユーザ名userとパスワードpasswordを指定しま す.これや対応するスタートアップオプションをを用いないと,パスワードの デフォルトは‘-wget@’になり,通常は匿名FTPで使用されるものになりま す.

ユーザ名とパスワードを指定するもう一つの方法は,URL自身に書く方法 です(see section URLの書式).いずれの手法でも,パスワードはpsを実行 することで,誰でも見れるようになってしまいます.パスワードを見られるこ とを避けるため,‘.wgetrc’や‘.netrc’に保存し,chmodで他 のユーザから確実にこれらのファイルを保護してください.パスワードが本当 に重要な場合,これらのファイルに書くことも止めてください—Wgetがダウン ロードを開始した後で,ファイルを編修し削除してください.

--no-remove-listing

FTPの回収で生成された,一時的な‘.listing’を削除しません.通常, これらのフィルは,FTPサーバから得た生のディレクトリリストを含んで います.それを削除しないことで,デバッグが目的のときや,リモートサーバ のディレクトリの内容について簡単な調査を可能にしたい時に役に立つはずで す(例えば,実行しているミラーが完全なことを検証します).

Wgetが既知のファイル名にこのファイルを書いたとしても,ユーザが ‘.listing’のシンボリックリンクを‘/etc/passwd’に作成したり, rootにWgetをそのホームディレクトリで実行するように頼むといったシ ナリオでも,これはセキュリティホールにはならないことに注意してください. 使用するオプションに依存して,Wgetは‘.listing’への書き込みを拒否し たり,glob/再帰/タイムスタンプの処理を失敗させたり,シンボリックリンク が削除されたり実際の‘.listing’ファイルに置換されたり,リストが ‘.listing.number’ファイルに書き込まれたりします.

この状況に問題があっても,rootは決してWgetを信頼できないユーザの ディレクトリで実行しません.ユーザは‘index.html’を ‘/etc/passwd’にリンクしたり,ファイルが上書きされるように rootに‘-N’や‘-r’を用いてWgetを実行するように頼むような, 簡単なことしかできません.

--no-glob

FTPのglobをオフにします.globはシェルのような特別文字(ワイル ドカード(wildcards)),つまり,同じディレクトリから一度に一つ以上のファ イルを回収するための‘*’,‘?’,‘[’と‘]’のようなもの の利用を意味します.以下のようにします.

 
wget ftp://gnjilux.srk.fer.hr/*.msg

デフォルトで,URLがglob文字を含む場合,globはオンです.このオプショ ンで永久的にglobのオン/オフに使用できます.

シェルによる展開から保護するため,URLを引用符で囲む必要があるかも しれません.globでWgetにディレクトリリストを探し,それはシステム指定の ものになっています.これは,現在の仕事がFTPサーバでのみ動作するか らです(そしてそれは,Unix ls出力をエミュレートします).

--no-passive-ftp

パッシブ(passive) FTP転送モードを利用不可能にします.パッシ ブFTPでは,通常とは反対に,データ接続を確立するためサーバに接続するクラ イアントに命令します.

マシンがインターネットに直接つながっている場合は,パッシブでもアクティ ブでもFTPは同じようにうまく動作します.ほとんどのファイアー・ウォールや NAT経由で接続しているパッシブFTPでは,うまく動作することでしょう.しか し,ファイアー・ウォール経由の接続で,パッシブFTPが動作しないときでもア クティブFTPが動作することもあります.このような状況だと疑われる場合は, このオプションを使用するか,入力ファイルでpassive_ftp=offを設定 してください.

--retr-symlinks

通常,FTPディレクトリを再帰的にダウンロードしていて,シンボリック リンクに遭遇したとき,リンクされているファイルはダウンロードされません. その代わりに,マッチしたシンボリックリンクはローカルファイルシステムに 作成されます.指し示されているファイルは,この再帰的な回収でバラバラに なり,それを何とかしてダウンロードしようとしない限り,ダウンロードされ ません.

しかし,‘--retr-symlinks’が指定されている場合,シンボリックリンク は切断され,指定されたファイルが回収されます.この時,このオプションで, Wgetはディレクトリに対するシンボリックリンクを切断して再帰的に回収しま せんが,将来はそうするように拡張されるでしょう.

ファイル(ディレクトリではない)の回収時には,それが再帰されているためで はなく,それがコマンドラインで指定されているために,このオプションの効 果がなくなります.シンボリックリンクは,この場合は常に切断されます.

--no-http-keep-alive

HTTPダウンロードでの“keep-alive”の機能を停止します.通常,同じサーバ から一つ以上の文書をダウンロードするとき,同じTCP接続を利用して転送する ため,Wgetはサーバにそのまま接続し続けるかどうか尋ねます.これは時間を 無駄にせず,同時にサーバの負荷を低減します.

このオプションは,なんらかの理由があり,永続的な(keep-alive)接続がうま く動作しないときに役に立ち,例えば,サーバのバグや接続に対処するサーバ・ サイド・スクリプトが利用できないときです.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.10 再帰的な回収オプション

-r
--recursive

再帰的な回収を開始します.詳細はSee section 再帰的なダウンロード.

-l depth
--level=depth

再帰的な最大深度の階層をdepthに設定します.(see section 再帰的なダウンロード).デフォルト最大深度は5です.

--delete-after

このオプションは,ダウンロードしたに全ての単一ファイルを削除す るようWgetに伝えます.それはプロキシから取得した一般的なページに対し便 利で,例えば以下のようにします.

 
wget -r -nd --delete-after http://whatever.com/~popular/page/

-r’オプションは再帰的に回収し,‘-nd’はディレクトリを作成しま せん.

--delete-after’がローカルマシンのファイルを削除することに注意して ください.例えばそれは,リモートのFTPサイトに‘DELE’コマンドを発行 しません.また‘--delete-after’が指定されたとき,‘.orig’ファイ ルが単純に最初の位置に作成されないため,‘--convert-links’が無視さ れることにも注意してください.

-k
--convert-links

ダウンロードが完了した後,ドキュメント内のリンクをローカルでの閲覧に適 したものに変換します.これは目に見えるハイパーリンクのみならず,埋め込 み画像,スタイルシートへのリンク,HTMLでない内容へのハイパーリンク 等のように,外部の内容にリンクしているドキュメントの,あらゆる部分にも 影響があります.

それぞれのリンクは二つの方法のうちの一つで変換されます.

このため,ローカルでの閲覧が信頼できるように動作します.リンクされてい るファイルがダウンロードされている場合,リンクはそのローカル名を参照し ます.それがダウンロードされていない場合は,リンクは存在する壊れたリン クではなく,その完全なインターネットアドレスを参照します.前のリンクが 相対リンクに変換されるという事実は,ダウンロードされた階層を別のものに 移動することを確実に可能にします.

ダウンロード後のみ,Wgetはリンクがダウンロードされたことを知ることがで きます.そのため,‘-k’が行う仕事は,すべてのダウンロード終りに実行 されます.

-K
--backup-converted

ファイルの変換時に,オリジナルバージョンのファイルを‘.orig’接尾子 を用いてバックアップします.‘-N’の動作に効果があります (see section HTTPタイムスタンプの内部).

-m
--mirror

ミラーに適したオプションを開始します.このオプションは回収とタイムスタ ンプを開始し,無限の再帰深度を設定し,FTPディレクトリリストを保ち ます.現在は,‘-r -N -l inf --no-remove-listing’と同じです.

-p
--page-requisites

このオプションで,Wgetは与えられたHTMLページを適切に表示するのに必 要なすべてのファイルをダウンロードします.これは,画像,音声,そして参 照されるスタイルシートのようなものを含みます.

通常は,単一のHTMLページをダウンロードするとき,正しく表示するのに 要求される可能性のある,必要なドキュメントも全くダウンロードされません. ‘-l’を用いた‘-r’オプションの使用は役に立つはずですが,Wgetは 外部とインラインドキュメントを通常区別するので,通常は失われた必要なも のとなる“leaf documents”として残ったままです.

例えば,‘1.gif’を参照する<IMG>タグと,外部ドキュメント ‘2.html’を指し示す<A>タグを含む,ドキュメントを考えます. ‘2.html’は似ていますが,その画像‘2.gif’でそのリンクは ‘3.html’とします.この繰り返しは,任意の,より大きい数字まであると します.

以下のコマンドを実行したとします.

 
wget -r -l 2 http://site/1.html

すると,‘1.html’,‘1.gif’,‘2.html’,‘2.gif’,そし て‘3.html’はダウンロードされます.見てお分かりのように,再帰を停止 する場所を決定するために,Wgetは,‘1.html’からのホップの数(を2 ま で) しか数えないので,‘3.html’にはそれが必要とする‘3.gif’ が ありません.しかし,以下のコマンドを用いたとします.

 
wget -r -l 2 -p http://site/1.html

それは,上記のすべてのファイルおよび3.html’が必要とする ‘3.gif’がダウンロードされます.同様に,以下のようにします.

 
wget -r -l 1 -p http://site/1.html

これで,‘1.html’,‘1.gif’,‘2.html’,そして‘2.gif’ がダウンロードされます.このように考えることもできます.

 
wget -r -l 0 -p http://site/1.html

これは,‘1.html’と‘1.gif’のみをダウンロードすると思われますが, ‘-l 0’は‘-l inf’—すなわち無限再帰—と等価なので,残念なが らそうなりません.単一のHTMLページ(または,コマンドラインや ‘-iURL入力ファイルで指定された少数のもの)とその(またはそれ らの)必需品をダウンロードするために,単に‘-p’と‘-l’のみ残して ください.

 
wget -p http://site/1.html

Wgetは,‘-r’が指定されたかのように動作しますが,単一のページとその 必需品のみダウンロードされることに注意してください.外部ドキュメントへ のリンクはだとりません.実際,単一のページとその必需品を(たとえ別のウェ ブサイトに存在していても)ダウンロードするためと,ひとまとまりで正しくロー カルに表示することを保証するために,この作者は,‘-p’に加えていくつ かのオプションを使用することを好みます.

 
wget -E -H -k -K -p http://site/document

このトピックの終りになりますが,外部ドキュメントへのリンクだとWgetが考 える方法は,<A>タグ,<AREA>タグ,または,<LINK REL="stylesheet">以外の<LINK>タグで指定されているあらゆるURLが そうであると考えるという方法です.

--strict-comments

HTMLのコメントの厳密な字句解析を開始します.デフォルトは,最初に ‘-->’が見つかったときにコメントを終了します.

仕様書によると,HTMLのコメントは,SGML宣言 (declarations)として表現されています.宣言は‘<!’で始まり‘>’ で終る‘<!DOCTYPE ...>’のような特別なマークアップで,それには ‘--’分離子の組の間にコメントを含めてもかまいません.HTMLのコ メントは“’空の宣言”で,それはコメントのテキストが無いSGMLの宣言 です.このため,‘<!--foo-->’は有効なコメントで,‘<!--one-- --two-->’もそうですが,‘<!--1--2-->’はそうではありません.

一方,ほとんどのHTML作者は,コメントの理解として‘<!--’と ‘-->’で分離されたテキストとして以上のものはなく,それは同じもので はありません.例えば,‘<!------------>’のようなものはダッシュの数 が四の倍数になっている限り有効なコメントとして動作します(!).そうでない 場合,コメントは技術的には,次の‘--’がない限り最後まで続き,それは ドキュメントの最後まで行ってしまうかもしれません.このため,多くの有名 なブラウザは,仕様書を無視し,ユーザが期待したように実装されています. コメントは‘<!--’と‘-->’で分離されています.

バージョン1.9までのWgetはコメントを厳密に解釈していて,結果として多くの 洗練されているブラウザでは表示される,多くのWebページへのリンクが失われ ていて,準拠していないコメントを含むものが不幸にも残っていました.バー ジョン1.9からは,“ネイティブ”のコメント,つまりそれぞれのコメントは最 初に‘-->’が見つかると終端されたものとして実装されたクライアントの 仲間入りを成し遂げました.

何らかの理由があって,厳密なコメントとする字句解析を行ないたい場合,こ のオプションを使用して,それを開始して下さい.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.11 再帰の受け入れ/拒絶オプション

-A acclist --accept acclist
-R rejlist --reject rejlist

受け入れるまたは拒絶する,カンマで分けられたファイル名の接尾子やパター ンを指定します(詳細は,see section ファイルの形式).

-D domain-list
--domains=domain-list

(リンクを)たどるドメインを設定します.domain-listはカンマで分けら れたドメインのリストです.‘-H’を開始しないことに注意してください.

--exclude-domains domain-list

(リンクを)たどらないドメインを指定します.(see section ホストをまたぐ).

--follow-ftp

HTMLドキュメントからのFTPリンクをたどります.このオプションが 無い場合,Wgetは全てのFTPリンクを無視します.

--follow-tags=list

再帰的な回収でリンクされているドキュメントを探すとき,HTMLタグ / の属性の対になると考えられるの内部テーブルを持っています.しかし,ユー ザが考慮すべきタグのサブセットのみ欲しい場合,このオプションとともに, カンマで分けられているlist内のタグを指定すべきです.

--ignore-tags=list

これは,‘--follow-tags’オプションの反対です.ダウンロードするドキュ メントを再帰的に探すとき,特定のHTMLタグをスキップするため,カンマ で分けられたlist内で指定してください.

以前は,このオプションは,単一のページとその必要物をダウンロードすると き最善の策で,それは以下のようなコマンドラインになりました.

 
wget --ignore-tags=a,area -H -k -K -r http://site/document

しかし,このオプションの作者は,<LINK REL="home" HREF="/">のよう なタグを用いたページに出会い,無視するタグを指定することが現実的ではな いことを実感しました.スタイルシートがダウンロードされないため,Wgetに <LINK>を無視させるように伝えることができませんでした.現在は,単 一のページとその必要物をダウンロードする最善の策として, ‘--page-requisites’オプションを提示しています.

-H
--span-hosts

再帰的な回収時に,ホストにまたることを可能とします(see section ホストをまたぐ).

-L
--relative

相対リンクのみたどります.同じホストからでも気にしないで,特定のホーム ページを回収することに役立ちます(see section 相対的なリンク).

-I list
--include-directories=list

ダウンロード時に,(リンクを)だどりたいディレクトリのカンマで分けられた リストを指定します(詳細は,see section ディレクトリベースの制限).list の要素にはワイルドカードを含めることができます.

-X list
--exclude-directories=list

ダウンロードから削除したいディレクトリの,カンマで分けられたリストを指 定します(詳細は,see section ディレクトリベースの制限).listの要素はワ イルドカードを含めることができます.

-np
--no-parent

再帰的な回収時に親ディレクトリへ登りません.特定の階層以下のファ イルのみダウンロードすることを保証するので,これは便利なオプションです. 詳細は,See section ディレクトリベースの制限.


[ << ] [ >> ]           [冒頭] [目次] [見出し] [ ? ]

この文書は新堂 安孝によって2009年9月22日texi2html 1.82を用いて生成されました。