Wznowienie nie powiodło się pobieranie za pomocą narzędzia wiersza polecenia Linux


37

Jak wznowić częściowo pobrany plik za pomocą narzędzia wiersza polecenia systemu Linux?

Pobrałem częściowo duży plik, tj. 400 MB z 900 MB z powodu przerwy w zasilaniu, ale kiedy ponownie zaczynam pobieranie, wznawia się od zera. Jak zacząć od samego 400 MB?


5
Jakiego wiersza użyłeś do pobrania pliku?
Anthon

3
Nie odpowiadaj w komentarzu, zaktualizuj swoje niepełne pytanie .
Anthon

1
Jeśli używasz curl, powinieneś przeszukać stronę podręcznika w poszukiwaniu -Copcji.
HalosGhost,

Odpowiedzi:


53

Ponieważ nie określiłeś, zakładam, że używasz wgetdo pobrania pliku. W takim przypadku spróbuj użyć go z -copcją (np wget -c <URL>.).

Zwróć uwagę, że w przypadku gdy protokołem jest ftp (wygląda jak adres URL ftp://...), istnieje szansa, że ​​serwer zdalny używa starego / starożytnego demona ftp, który nie obsługuje wznawiania pobierania (w każdym razie nowsze demony ftp obsługują go przez ponad dekadę , więc to tylko mała szansa). W takim przypadku możesz nie mieć szczęścia. Z drugiej strony nie powinieneś mieć problemów, jeśli użyty protokół to http. (AKTUALIZACJA: Według innych ekspertów (w tym Gilles w komentarzach poniżej) wznawianie korzystania z protokołu HTTP również podlega obsłudze serwera, więc dotyczy to zarówno ftp, jak i http).

Powodzenia.


5
Pobieranie HTTP można wznowić tylko wtedy, gdy serwer go obsługuje, co jest rzadsze niż w przypadku serwerów FTP.
Gilles „SO- przestań być zły”

Dziękuję Gilles, miałem tylko dobre doświadczenia z wznawianiem korzystania z http, ale prawdopodobnie masz rację i mam szczęście. Zaktualizuje moją odpowiedź.
Marcelo

wget -c http:...pracował na 3 lub 4 serwerach, na których go wypróbowałem.
Bob Stein

Niech Bóg cię błogosławi, człowieku!
uczeń

3
@Gilles: W rzeczywistości jest to obecnie powszechna opcja dla dowolnej zawartości statycznej z serwerów nowszych niż ~ 2010 (innymi słowy, większość serwerów domyślnie zezwala na żądania zakresu dla plików statycznych). W przypadku danych generowanych dynamicznie jest to rzeczywiście rzadkie.
Piskvor

0

Wiem, co znaczy pierwotne pytanie, a odpowiedź nie brzmi wget -c ...

Scenariusz można opisać następująco:

# Start mirroring a site
wget -m http://...
# 400MB later wget died or interrupted,
# don't know where it left off, don't care,
# just want to get the remaining 100MB without getting the first 400MB again
wget -nc -r -l inf --no-remove-listing http://...

Opcje „-r -l inf --no-remove-listing” są równoważne -m bez parametru -N. Dodanie parametru -nc pozwala uniknąć zapisywania pierwszych 400 MB już na dysku twardym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.