dowolne polecenie/wget z opcjami?wiele wget -r witryny jednocześnie?
Wielowątkowe pobieranie witryny rekurencyjnie i jednocześnie?
dowolne polecenie/wget z opcjami?wiele wget -r witryny jednocześnie?
Wielowątkowe pobieranie witryny rekurencyjnie i jednocześnie?
Cóż, zawsze możesz uruchomić wiele instancji wget
, nie?
przykład:
wget -r http://somesite.example.org/ &
wget -r http://othersite.example.net/ &
itp składnia ta działa w dowolnym środowisku uniksopodobnym (np Linux lub MacOS); nie wiem, jak to zrobić w systemie Windows.
Sam Wget nie obsługuje operacji wielowątkowych - przynajmniej ani manpage ani its website nie wspomina o tym. W każdym razie, ponieważ wget obsługuje HTTP keepalive, wąskim gardłem jest zwykle przepustowość połączenia, a nie liczba jednoczesnych pobrań.
Znalazłem przyzwoite rozwiązanie.
Przeczytaj oryginalny w http://www.linuxquestions.org/questions/linux-networking-3/wget-multi-threaded-downloading-457375/
wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url] &
kopiowane tyle razy, ile uznają za stosowny, aby mieć jak najwięcej procesów pobieranie. To nie jest tak eleganckie, jak prawidłowo wielowątkowa aplikacja, ale będzie to robić tylko z niewielką ilością nad głową. Kluczem tutaj jest przełącznik "-N". Oznacza to, że plik należy przesłać tylko pod numer , jeśli jest nowszy niż na dysku. W ten sposób (głównie) uniemożliwisz każdemu procesowi pobranie tego samego pliku z innego już pobranego procesu, który został już pobrany , ale pomiń ten plik i pobierz to, czego inny proces nie pobrał. Używa znacznika czasu jako sposobu na wykonanie tego, stąd niewielki narzut.
Działa to doskonale dla mnie i oszczędza dużo czasu. Nie należy wykonywać zbyt wielu procesów, ponieważ może to spowodować nasycenie połączenia z witryną sieci Web i odznaczenie właściciela. Przechowywać około około 4 lub więcej. Jednak numer jest ograniczony tylko przez procesor i przepustowość sieci na obu końcach.
Zastosowanie axel
pobrać z wielu połączeń
apt-get install axel
axel http://example.com/file.zip
lub aget http://www.enderunix.org/aget/, ale nie są to rozwiązania rekursywne (dobre dla innych osób, które dostały się na to pytanie, szukając jednego) – Orwellophile
Dzięki zastosowaniu równoległych wget wykorzystujących wyłącznik xargs, rozwiązanie to wydaje się o wiele lepiej:
Jest to dobre tylko wtedy, gdy znasz wszystkie adresy URL do pobrania w postęp.Tak nie jest, gdy chcesz zwierciadlować witrynę. – Ray
'wget -r --child 100 http: // site.com szuka czegoś takiego. – c2h2
@ c2h2: Zgodnie ze stroną podręcznika wget (http://linux.die.net/man/1/wget) i dokumentami wget na jej stronie internetowej (http://www.gnu.org/software/wget/manual/wget .html), nie ma takiej opcji (lub czegoś podobnego) - 'wget' jest jednowątkowe. Przepraszam. – Piskvor
dzięki! Też tak myślałem. – c2h2