Para evitar las --, -K/s
situaciones que puedes usar --read-timeout=seconds
. Esto expirará la conexión después de la cantidad de segundos.
Si necesita ir más allá, puede usar esta configuración
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Esto reintentará conexiones rechazadas y errores fatales similares ( --retry-connrefused
), esperará 1 segundo antes del próximo reintento ( --waitretry
), esperará un máximo de 20 segundos en caso de que no se reciban datos y luego vuelva a intentarlo ( --read-timeout
), esperará un máximo de 15 segundos antes de que la conexión inicial agote el tiempo de espera ( --timeout
) y finalmente volverá a intentar un número infinito de veces ( -t 0
).
También es posible que desee poner esto en un while
bucle para evitar fallas en la red local y similares. En este caso, también debe agregar --continue
para continuar la descarga donde la dejó. Lo siguiente funciona bien en Bash
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
sleep 1s;
done;
Como consejo adicional, también puede usarlo --no-dns-cache
en caso de que el host equilibre su solicitud entre varios servidores mediante DNS.
Descargo de responsabilidad: no recomiendo usar esto, ya que enviará correo no deseado al host en caso de que la conexión sea inestable y no sea aconsejable dejarlo sin supervisión. Sin embargo, esto es lo que desea en caso de que realmente necesite descargar algo y su conexión no funcione adecuadamente.
--read-timeout=900
. Podrías esperar 15 minutos y wget reiniciará la descarga.