Um die --, -K/s
Situationen zu vermeiden, die Sie verwenden können --read-timeout=seconds
. Dadurch wird die Verbindung nach Ablauf der Sekunden unterbrochen.
Wenn Sie darüber hinaus gehen müssen, können Sie dieses Setup verwenden
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Dadurch werden abgelehnte Verbindungen und ähnliche schwerwiegende Fehler --retry-connrefused
wiederholt ( --waitretry
), es wird 1 Sekunde vor dem nächsten erneuten Versuch gewartet ( ), es wird maximal 20 Sekunden gewartet, falls keine Daten empfangen werden, und es wird erneut versucht ( --read-timeout
), es wird maximal 15 Sekunden gewartet bevor die anfängliche Verbindung --timeout
das Zeitlimit überschreitet ( ) und es wird schließlich unendlich oft versucht ( -t 0
).
Möglicherweise möchten Sie dies auch in eine while
Schleife einfügen, um lokale Netzwerkfehler und ähnliches zu vermeiden. In diesem Fall müssen Sie auch hinzufügen --continue
, um den Download an der Stelle fortzusetzen, an der Sie aufgehört haben. Das Folgende funktioniert gut 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;
Als Bonus-Tipp können Sie auch verwenden, --no-dns-cache
wenn der Host Ihre Anfrage über DNS zwischen mehreren Servern ausgleicht.
Haftungsausschluss: Ich rate davon ab, dies zu verwenden, da es den Host zum Spam macht, falls die Verbindung instabil ist und es unklug ist, sie nicht überwacht zu lassen. Dies ist jedoch genau das, was Sie möchten, wenn Sie wirklich etwas herunterladen müssen und Ihre Verbindung nicht ordnungsgemäß funktioniert.
--read-timeout=900
. Sie könnten nur 15 Minuten warten und wget wird den Download neu starten.