Next: , Previous: Logging and Input File Options, Up: Invoking


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 Time-Stamping).‘-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含まれています).

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

-N
--timestamping
タイムスタンプを開始します.詳細は,See Time-Stamping.


-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でプロキシを使用する際の詳細は,Proxies.


-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’オプショ ンを使用することで,それに優先させることが可能です.