如何强制 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 字节的虚拟文件。这将强制显示摘要。

相关内容