Ich möchte, dass wget (versucht) den Download zu starten. Wenn der Download nach 10 Sekunden nicht abgeschlossen ist, soll es aufgeben.
wget --timeout 10 http://url
Scheint ein vernünftiger Versuch zu sein, aber es scheint, als ob nur --dns-timeout, --connect-timeout und --read-timeout festgelegt werden. Daher könnte es 9 Sekunden auf DNS warten, weitere 9 auf Connect und dann für immer mit dem Herunterladen fortfahren, solange die Daten in gleichmäßigem Tempo eingehen (keine Pause von mehr als 10 Sekunden).
Antwort1
Im Grunde wird das ungefähr so aussehen:
wget http://www.somesite.com/file.zip &
PID=$!
sleep 10
if [ `ps ax | grep $PID` -ne '' ]
then
kill $PID
fi
Antwort2
Das ist nichtgenauwas Sie fragen, da dies nur dann zu einem Timeout von Wget führen sollte, wenn der Download länger als 10 Sekunden im Leerlauf ist:
wget --read-timeout= 10 http://url
Über die --read-timeout
Option, aus demWget 1.13.4 Handbuch:
Stellen Sie das Timeout für Lesen (und Schreiben) auf Sekunden ein. Die „Zeit“ dieses Timeouts bezieht sich auf die Leerlaufzeit: Wenn zu irgendeinem Zeitpunkt des Downloads länger als die angegebene Anzahl von Sekunden keine Daten empfangen werden, schlägt das Lesen fehl und der Download wird neu gestartet. Diese Option wirkt sich nicht direkt auf die Dauer des gesamten Downloads aus.