Al fine di evitare le --, -K/s
situazioni che è possibile utilizzare --read-timeout=seconds
. Ciò determinerà il timeout della connessione dopo la quantità di secondi.
Se è necessario andare oltre, è possibile utilizzare questa configurazione
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Ciò riproverà le connessioni rifiutate e simili errori fatali ( --retry-connrefused
), attenderà 1 secondo prima del prossimo tentativo ( --waitretry
), attenderà un massimo di 20 secondi nel caso in cui non vengano ricevuti dati e quindi riproverà ( ), --read-timeout
attenderà al massimo 15 secondi prima del timeout della connessione iniziale ( --timeout
) e infine riproverà un numero infinito di volte ( -t 0
).
Potresti anche metterlo in un while
ciclo per evitare guasti alla rete locale e simili. In questo caso, è necessario aggiungere anche --continue
per continuare il download da dove era stato interrotto. Quanto segue funziona bene in 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;
Come suggerimento bonus puoi anche utilizzare --no-dns-cache
nel caso in cui l'host bilanci la tua richiesta tra più server tramite DNS.
Dichiarazione di non responsabilità: sconsiglio di utilizzare questa opzione poiché invierà spam all'host nel caso in cui la connessione sia instabile ed è poco saggio lasciarla non monitorata. Tuttavia, questo è ciò che desideri nel caso in cui tu abbia davvero bisogno di scaricare qualcosa e la tua connessione non funzioni adeguatamente.
--read-timeout=900
. Potresti aspettare solo 15 minuti e wget riavvierà il download.