
Tengo un script bash que lanza una serie de comandos wget y registra el resultado. Utilizo las siguientes opciones:
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
Los registros deben terminar con:
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)
Pero a veces no existe tal resumen, lo único que veo son los errores que ocurrieron:
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 qué wget no muestra un resumen? ¿Es porque no se han descargado archivos nuevos o porque ha habido muchos errores del servidor (404, 403)?
Respuesta1
¿Es porque no se han descargado archivos nuevos,[...]?
Sí. Eso es todo. No habrá ningún resumen si se han descargado cero bytes. Es debido a la segunda mitad de la siguiente declaración if: "total_downloaded_bytes! = 0"
Fuente de larepositorio wget Git:
if ((opt.recursive || opt.page_requisites
|| nurl > 1
|| (opt.input_filename && total_downloaded_bytes != 0))
&&
total_downloaded_bytes != 0)
¿Cómo forzar a wget a generar un resumen?
Parece que no hay opción para forzar esto. Puedo pensar en estas alternativas:
- Elimine las dos líneas del código fuente y vuelva a compilar su propia compilación privada.
- Envíe una solicitud de función para obtener una opción explícita parael rastreador de errores de wget.
- Descargue un archivo ficticio de 1 byte cada vez. Esto debería forzar la visualización del resumen.