qualsiasi comando/wget con opzioni?più wget -r un sito contemporaneamente?
Per il multithreading scaricare un sito in modo ricorsivo e simultaneo?
qualsiasi comando/wget con opzioni?più wget -r un sito contemporaneamente?
Per il multithreading scaricare un sito in modo ricorsivo e simultaneo?
Bene, è sempre possibile eseguire più istanze di wget
, no?
Esempio:
wget -r http://somesite.example.org/ &
wget -r http://othersite.example.net/ &
ecc Questa sintassi funziona in qualsiasi ambiente Unix (ad esempio Linux o MacOS); non sono sicuro di come farlo in Windows.
Wget stesso non supporta operazioni con multithreading - almeno, né lo manpage né lo its website ne parlano. In ogni caso, dal momento che wget supporta HTTP keepalive, il collo di bottiglia è solitamente la larghezza di banda della connessione, non il numero di download simultanei.
Ho trovato una soluzione decente.
Leggi originale a 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] &
copiata tutte le volte che si ritengono montaggio di avere tanto i processi download. Questo non è elegante come un'applicazione correttamente multithreaded, ma farà il lavoro con solo una piccola quantità di spese. la chiave qui è l'interruttore "-N". Questo significa trasferire il file solo se è più recente di quello che si trova sul disco. Ciò impedirà (per lo più) a di scaricare dal processo stesso lo stesso file con un altro processo già scaricato, ma salta il file e scarica ciò che altri processi non hanno scaricato. Usa il timestamp come mezzo per fare questo, quindi il leggero overhead.
Funziona perfettamente per me e consente di risparmiare molto tempo. Non avere troppi processi in quanto ciò potrebbe saturare la connessione del sito web e spuntare il proprietario . Mantengalo intorno a un massimo di 4 o così. Tuttavia, il numero è limitato solo dalla CPU e dalla larghezza di banda della rete su entrambe le estremità.
Usa axel
per scaricare con i multi connessioni
apt-get install axel
axel http://example.com/file.zip
o aget http://www.enderunix.org/aget/ ma queste non sono soluzioni ricorsive (buono per altri ppl che hanno ottenuto questa domanda cercandone uno) – Orwellophile
Con l'uso di wget parallele utilizzando l'interruttore di xargs, questa soluzione sembra molto meglio:
È buono solo quando si conoscono tutti gli URL scaricabili in avanzare.Questo non è il caso quando si desidera eseguire il mirroring di un sito. – Ray
'wget -r --child 100 http: // site.com' sta cercando qualcosa di simile. – c2h2
@ c2h2: secondo la manpage di wget (http://linux.die.net/man/1/wget) e i documenti di wget sul suo sito web (http://www.gnu.org/software/wget/manual/wget .html), non esiste tale opzione (o qualcosa di simile) - 'wget' è single-threaded. Scusate. – Piskvor
grazie! lo pensavo anch'io. – c2h2