
Eu tenho um script bash que inicia uma série de comandos wget e registra a saída. Eu uso as seguintes opções:
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
Os logs devem terminar 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)
Mas às vezes não existe esse resumo, tudo que vejo são os erros que aconteceram:
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.
Por que o wget não mostra um resumo? É porque nenhum arquivo novo foi baixado ou porque ocorreram muitos erros no servidor (404, 403)?
Responder1
É porque nenhum novo arquivo foi baixado,[...]?
Sim. É isso. Não haverá resumo se nenhum byte tiver sido baixado. É por causa da segunda metade da instrução if abaixo: "total_downloaded_bytes! = 0"
Fonte dowget repositório Git:
if ((opt.recursive || opt.page_requisites
|| nurl > 1
|| (opt.input_filename && total_downloaded_bytes != 0))
&&
total_downloaded_bytes != 0)
Como forçar o wget a gerar um resumo?
Parece não haver opção para forçar isso. Posso pensar nestas alternativas:
- Remova as duas linhas da fonte e recompile sua própria compilação privada.
- Envie uma solicitação de recurso para uma opção explícita parao rastreador de bugs wget.
- Baixe um arquivo fictício de 1 byte de cada vez. Isso deve forçar a exibição do resumo.