
一連の wget コマンドを起動して出力をログに記録する bash スクリプトがあります。次のオプションを使用します。
wget --no-verbose --page-requisites --adjust-extension --convert-links --backup-converted --timestamping --wait=1 --random-wait --append-output="$logfile" --recursive --level=2 http://example.com
ログは次のように終わる必要があります:
Terminé — 2014-10-09 18:06:40 —
Temps total effectif : 1m 7s
Téléchargés : 11 fichiers, 79K en 0,06s (1,22 MB/s)
しかし、時にはそのような要約がなく、発生したエラーだけが表示されることもあります。
http://example.com/robots.txt:
2014-10-09 18:06:41 erreur 404 : Ce fichier n'existe pas (404).
http://example.com/index.html:
2014-10-09 18:08:27 erreur 404 : Ce fichier n'existe pas (404).
http://example.com/folder1/folder2/default.asp.html:
2014-10-09 18:08:31 erreur 404 : Ce fichier n'existe pas (404).
http://example.com/folder1/index.html:
2014-10-09 18:08:56 erreur 404 : Ce fichier n'existe pas (404).
http://example.com/folder1/folder2/folder3/"../images/bullet.gif":
2014-10-09 18:09:28 erreur 403 : Action interdite.
wget が概要を表示しないのはなぜですか? 新しいファイルがダウンロードされていないか、サーバー エラー (404、403) が多すぎるためでしょうか?
答え1
新しいファイルがダウンロードされていないからでしょうか?[...]
はい、その通りです。ダウンロードされたバイト数が 0 バイトの場合、要約は表示されません。これは、以下の if 文の後半部分「total_downloaded_bytes != 0」のためです。
出典:wget Gitリポジトリ:
if ((opt.recursive || opt.page_requisites
|| nurl > 1
|| (opt.input_filename && total_downloaded_bytes != 0))
&&
total_downloaded_bytes != 0)
wget に要約を出力させるにはどうすればいいですか?
これを強制するオプションはないようです。次の代替案が考えられます:
- ソースから 2 行を削除し、独自のプライベート ビルドを再コンパイルします。
- 明示的なオプションの機能リクエストを送信するwget バグトラッカー。
- 毎回 1 バイトのダミー ファイルをダウンロードします。これにより、概要が強制的に表示されます。