如何強制 wget 輸出摘要?

如何強制 wget 輸出摘要?

我有一個 bash 腳本,它啟動一系列 wget 命令並記錄輸出。我使用以下選項:

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

是因為沒有下載新檔案嗎,[...]?

是的。就是這樣。如果下載了零字節,則不會有摘要。這是因為下面的 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 輸出摘要?

似乎沒有辦法強制這樣做。我可以想到這些替代方案:

  • 從原始程式碼中刪除這兩行並重新編譯您自己的私有版本。
  • 提交明確選項的功能請求wget 錯誤追蹤器
  • 每次下載一個 1 位元組的虛擬檔案。這應該會強制顯示摘要。

相關內容