2011-01-20 12 views

Respuesta

2

Bueno, siempre puedes ejecutar varias instancias de wget, ¿no?

Ejemplo:

wget -r http://somesite.example.org/ & 
wget -r http://othersite.example.net/ & 

etc. Esta sintaxis funcionará en cualquier entorno Unix (por ejemplo, Linux o MacOS); no estoy seguro de cómo hacer esto en Windows.

Wget en sí mismo no es compatible con operaciones multiproceso - al menos, ni el manpage ni its website tiene ninguna mención de esto. De todos modos, como wget admite HTTP keepalive, el cuello de botella suele ser el ancho de banda de la conexión, no el número de descargas simultáneas.

+0

'wget -r --child 100 http: // site.com' buscando algo como esto. – c2h2

+0

@ c2h2: Según la página de manual de wget (http://linux.die.net/man/1/wget) y wget docs en su sitio web (http://www.gnu.org/software/wget/manual/wget) .html), no existe tal opción (o algo similar) - 'wget' tiene un único subproceso. Lo siento. – Piskvor

+0

gracias! Yo también pensé lo mismo. – c2h2

8

Encontré una solución decente.

Leer original 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] & 

copiado tantas veces como considere apropiado para tener la mayor cantidad de procesos descarga. Esto no es tan elegante como una aplicación correctamente multiprocesada, , pero hará el trabajo con solo una pequeña cantidad de gastos generales. la clave aquí es el interruptor "-N". Esto significa transferir el archivo solo al si es más nuevo que lo que está en el disco. Esto evitará (en su mayoría) cada proceso desde la descarga del mismo archivo, un proceso diferente ya descargado, pero omita el archivo y descargue lo que otro proceso no ha descargado. Utiliza la marca de tiempo como medio de hacer esto, de ahí la ligera sobrecarga.

Funciona muy bien para mí y ahorra mucho tiempo. No hay demasiados procesos , ya que esto puede saturar la conexión del sitio web y marcar el propietario. Manténgalo alrededor de un máximo de 4 o menos. Sin embargo, el número es solo limitado por la CPU y el ancho de banda de red en ambos extremos.

+0

wow debería funcionar, voy a intentarlo – c2h2

+0

¿Esto funcionó para usted? Lo estoy usando en dos servidores sin problemas hasta el momento. – Julian

3

Uso axel descargar con conexiones múltiples

apt-get install axel 

axel http://example.com/file.zip 
+0

o aget http://www.enderunix.org/aget/ pero estas no son soluciones recursivas (bueno para otras personas que llegaron a esta pregunta buscando una) – Orwellophile

5

Con el uso de wget paralelas utilizando el interruptor de xargs, esta solución parece mucho mejor:

https://stackoverflow.com/a/11850469/1647809

+0

Solo es bueno cuando sabes todas las URL descargables en avanzar.Ese no es el caso cuando quiere duplicar un sitio. – Ray

Cuestiones relacionadas