wget に要約を出力させるにはどうすればいいですか?

wget に要約を出力させるにはどうすればいいですか?

一連の 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 バイトのダミー ファイルをダウンロードします。これにより、概要が強制的に表示されます。

関連情報