Para evitar las --, -K/ssituaciones 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 whilebucle para evitar fallas en la red local y similares. En este caso, también debe agregar --continuepara 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-cacheen 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.