Aby uniknąć --, -K/s
sytuacji, których możesz użyć --read-timeout=seconds
. Spowoduje to przekroczenie limitu czasu połączenia po upływie kilku sekund.
Jeśli chcesz wyjść poza to, możesz skorzystać z tej konfiguracji
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Spowoduje to ponowienie próby odrzucenia połączeń i podobnych błędów krytycznych ( --retry-connrefused
), odczeka 1 sekundę przed kolejną próbą ( --waitretry
), odczeka maksymalnie 20 sekund w przypadku braku danych, a następnie spróbuje ponownie (--read-timeout
), poczeka maksymalnie 15 sekund przed początkowym limitem czasu połączenia ( --timeout
) i na końcu spróbuje powtórzyć nieskończoną liczbę razy ( -t 0
).
Możesz także umieścić to w while
pętli, aby uniknąć awarii sieci lokalnej i tym podobnych. W takim przypadku musisz również dodać --continue
, aby kontynuować pobieranie od miejsca, w którym zostało przerwane. Następujące działa dobrze w 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;
Jako wskazówkę dodatkową możesz także użyć --no-dns-cache
z opcji równoważenia żądania hosta między wieloma serwerami przez DNS.
Oświadczenie: Nie polecam korzystania z tego, ponieważ spowoduje to spam hosta w przypadku, gdy połączenie jest niestabilne i niemądrze jest pozostawiać go bez nadzoru. Jednak tego właśnie chcesz, jeśli naprawdę musisz coś pobrać, a twoje połączenie nie działa odpowiednio.
--read-timeout=900
. Możesz poczekać 15 minut, a wget ponownie rozpocznie pobieranie.--tries=number
Ta opcja ustawia liczbę ponownych prób na liczbę. Podaj 0 lub „inf” dla nieskończonego ponawiania.
wget --tries=70 http://example.com/myfile.zip
powinien to zrobić.Domyślnie ponawia się 20 razy, z wyjątkiem krytycznych błędów, takich jak „odmowa połączenia” lub „nie znaleziono” (404), które nie są ponawiane.
źródło
Czy to pomogłoby? Na askubuntu.com znalazłem pytanie bardzo podobne do tego, które zadajesz. Oto link do niego: /ubuntu/72663/how-to-make-wget-retry-download-if-speed-goes-below-certain-threshold
źródło