[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

2. 呼び出し

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

 
wget [option]... [URL]...

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

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

2.1 URLの書式  
2.2 オプションの構文  
2.3 基本的なスタートアップオプション  
2.4 ログと入力ファイルオプション  
2.5 ダウンロードオプション  
2.6 ディレクトリオプション  
2.7 HTTPオプション  
2.8 FTPオプション  
2.9 再帰的な回収オプション  
2.10 再帰の受け入れ/拒絶オプション  


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 getoptsを使用しているので,全てのオプションに は短い形式と長い形式があります.長いオプションは覚え易くより便利なので すが,入力に時間がかかります.異なるオプションスタイルを自由に混ぜて使 用したり,コマンドライン引数の後にオプションを指定したりしてもかまいま せん.このため,以下のように書くことができます.

 
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 6.2 Wgetrcの構文)のリストをクリアにすることも可能です.

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


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

`-V'
`--version'
Wgetのバージョンを表示します.

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

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

`-e command'
`--execute command'
`.wgetrc' (see section 6. スタートアップファイル)の一部のように,commandを実 行します.このようなコマンドは`.wgetrc'のコマンドの後に実 行されるので,それらに優先します.


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 8.4 バグの報告.

`-q'
`--quiet'
Wgetの出力を停止します.

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

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

`-i file'
`--input-file=file'
fileからURLを読み込み,その場合はURLをコマンドラインに 書く必要はありません.コマンド行と入力ファイルの両方にURLがある場 合,コマンド行のものが最初に回収されます.fileはHTMLドキュ メントにする必要はありません(しかし,害が無い場合です)---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接続を作成するとき,ローカルマシンのADDRESSbind()します.ADDRESSはホスト名またはIPアドレスとして指 定してもかまいません.このオプションはマシンが複数のIPに連結されている 場合,役に立つはずです.

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

`-O file'
`--output-document=file'
ドキュメントは適切なファイルに書かれませんが,全て一緒に連結されて fileに書き込まれます.fileが既にある場合は上書きされます. fileが`-'の場合はドキュメントは標準出力に書き込まれます.こ のオプションを含めると,再試行の回数を1に自動的に設定します.

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

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

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

`-N'を用い,`-r'を用いるまたは用いないことで,Wgetを実行する とき,ローカルとリモートのファイルのタイムスタンプとサイズに依存して, より新しいファイルのダウンロードを実行するかどうかを決定します (see section 5. タイムスタンプ).`-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'ファイ ルはそのまま残ります.

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

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

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

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

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

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

`--progress=type'
使用したい進行状況表示の形式を選択します.正当な表示は"ドット"と "バー" です.

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

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

ドットでの回収を使用している時,`dot: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 5. タイムスタンプ.

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

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

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

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

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

Wgetがリモートホストに接続する,またはそこから読み出すとき,タイムアウ トを調査し,時間が超過した場合は処理を中止します.これで,中途半端な読 み込みや無限接続といった異常な障害を避けることになります.デフォルトで 利用可能なタイムアウトは,読み込みのタイムアウトの900秒だけです.タイ ムアウトを0に設定することで,タイムアウトの調査を利用不可能にします.

何を行っているか分からない場合,タイムアウトに関連するオプションを設定 しないのが最善でしょう.

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

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

`--read-timeout=seconds'
読み込み(と書き出し)のタイムアウトをseconds秒に設定します.時間 がかかる読み込みは異常終了します.読み込みタイムアウトのデフォルト値は 900秒です.

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

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

`-Y on/off'
`--proxy=on/off'
プロキシサポートを開始または停止します.適切な環境変数が定義されている 場合,プロキシはデフォルトです.

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

`-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'に設定すると,ダウンロードクォータは無制限にな ります.

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

しかし,場合によってはホスト名のキャッシュに価値が無いこともあり,それ は,Wgetのようなちょっとしたアプリケーションの実行の間でもそうです.例 えば,HTTPサーバには,刻々と変化する動的なIPアドレスを割り当てを利用し てホスティングしているものもあります.それらのDNSのエントリーは変化す るたびに更新されます.Wgetによるそれぞれのホストからのダウンロードで, IPアドレスの変更が判別したとき,Wgetはダウンロードを再試行しますが, (DNSキャッシュのため)古いアドレスに接続してしまいます.DNSキャッシュを 停止することで,Wgetは接続するたびにDNSルックアップを繰返し,そのため 正しい動的なアドレスを毎回入手します---余分なDNSルックアップのコストは おそらく不要なものなんですけど.

上記の記述を理解していない場合,おそらくこのオプションは不要でしょう.

`--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'を使用することが可能です.


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/'で始まるディレクトリ構造を作成します.このオプショ ンはそのような動作を不可にします.

`--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に設定します.ディレクトリ プレフィクスは,他の全てのファイルとサブディレクトリが保存されるディ レクトリで,すなわち回収ツリーのトップになります.デフォルトは `.'(カレントディレクトリ)です.


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 2.9 再帰的な回収オプション).

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

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

Wgetのセキュリティーの問題に関する詳細は,See section 9.2 セキュリティの考慮.

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

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

`--cookies=on/off'
オフに設定するとき,クッキーは使用不可能になります.クッキーはサーバ側 の状態を管理するメカニズムです.サーバは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 --cookies=off --header "Cookie: name=value"

`--save-cookies file'
セッションの終りにfileにクッキーを保存します.破棄する時間が指定 されていないクッキーや,既に期限切れのクッキーは保存されません.

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

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

`--header=additional-header'
HTTPに渡すadditional-headerを定義します.ヘッダは,一つ以上 の空白ではない文字が前置されている`:'を含んでいて,それには改行を 含めてはなりません.

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

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

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

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

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

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

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

`-U agent-string'
`--user-agent=agent-string'
agent-stringとしてHTTPサーバを識別します.

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

しかし,サイトによってはUser-Agentが供給する情報によって出力を 調整するポリシーを課すことが知られています.概念的には,これはそんなに 悪い考えではないのですが,MozillaやMicrosoft Internet Explorer以外のクライアントに情報の提供を拒否するように乱用されてもい ました.このオプションで,Wgetが発行する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


2.8 FTPオプション

`-nr'
`--dont-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を実行するように頼むよう な,簡単なことしかできません.

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

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

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

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

`--passive-ftp'
passive FTP回収手法を使用し,そこでクライアントはデータ接続 を開始します.これは,FTPをファイアーウォールの後ろから動作させる ため,必要なときもあります.

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

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

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


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

`-r'
`--recursive'
再帰的な回収を開始します.詳細はSee section 3. 再帰的な回収.

`-l depth'
`--level=depth'
再帰的な最大深度の階層をdepthに設定します.(see section 3. 再帰的な回収).デフォルト最大深度は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 5.2 HTTPタイムスタンプの内部).

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

`-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ページ(または,コマンドラインや `-i' URL入力ファイルで指定された少数のもの)とその(またはそれ らの)必需品をダウンロードするために,単に`-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.10 再帰の受け入れ/拒絶オプション

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

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

`--exclude-domains domain-list'
(リンクを)たどらないドメインを指定します.(see section 4.1 ホストをまたぐ).

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

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

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

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

 
wget -Ga,area -H -k -K -r http://site/document

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

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

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

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

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

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


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on February, 25 2004 using texi2html