jak sprawić, by wget ponownie spróbował pobrać, jeśli prędkość spadnie poniżej określonego progu?

13

Próbuję pobrać duży plik 2 GB za pomocą wget, ale po kilku minutach wydaje się, że nadal się przeciąga.

I ^ C go i wget go ponownie [z --continueopcją], i zaczyna się pobieranie ponownie.

Czy istnieje sposób na zautomatyzowanie ponawiania pobierania, gdy przestanie się ono pobierać? Dzięki

Matt
źródło

Odpowiedzi:

20

Możesz skorzystać z tej --triesopcji.

   --tries=number
       Set number of retries to number.  Specify 0 or inf for infinite
       retrying.  The default is to retry 20 times, with the exception of
       fatal errors like "connection refused" or "not found" (404), which
       are not retried.

Więc --tries=0powinien załatwić sprawę.

To w połączeniu z --read-timeout=seconds. Do sekund odnosi się do czasu bezczynności: jeżeli w dowolnym punkcie pobierania, żadne dane nie otrzymał więcej niż określona liczba sekund, czytanie i pobieranie nie zostanie ponownie uruchomiony.

Ostateczne polecenie:

wget -c --tries=0 --read-timeout=20 [URL]

Pablo Zubieta
źródło
1
Problem polega na tym, że wget się nie poddaje. Po prostu „pobiera” z prędkością 0 KB / s .. :(
Matt
8
Dobrze. Prawdopodobnie możesz --read-timeout=secondszamiast tego użyć . „Czas” tego limitu czasu odnosi się do czasu bezczynności: jeśli w dowolnym momencie pobierania dane nie zostaną odebrane przez więcej niż określoną liczbę sekund, odczyt nie powiedzie się, a pobieranie zostanie wznowione. Ta opcja nie wpływa bezpośrednio na czas trwania całego pobierania. Oczywiście zdalny serwer może zakończyć połączenie wcześniej, niż wymaga tego opcja. Domyślny limit czasu odczytu to 900 sekund.
Pablo Zubieta
Tak! To jest to! Musiałem to przeczytać już dawno temu, kiedy przeczytałem instrukcję wget [większość / całość], i wróciłem i nie mogłem jej znaleźć.
Matt
Czy nie powinno to obejmować również - kontynuować?
sfyn
@sfyn: Tak, dodałem -cdo odpowiedzi, więc jeśli coś się nie powiedzie, możesz zacząć od miejsca, w którym przerwałeś. Dzięki.
Pablo Zubieta
0

Wget próbuje kontynuować pobieranie 15 minut po awarii. Jeśli zostawisz to na noc, powinno po prostu działać.

Boris
źródło