Encontré solo puf (Buscador de URL paralelo) pero no pude hacerlo leer las URL de un archivo; algo como
puf < urls.txt
tampoco funciona
El sistema operativo instalado en el servidor es Ubuntu.
ubuntu
wget
parallelism
Caminante lunar
fuente
fuente

Respuestas:
Usando GNU Paralelo ,
$ parallel -j $ {jobs} wget <urls.txto
xargsde GNU Findutils ,$ xargs -n 1 -P $ {jobs} wget <urls.txtdonde
${jobs}está el número máximo dewgetdesea permitir la ejecución simultánea (ajuste-npara1conseguir unawgetinvocación por línea enurls.txt). Sin-j/-P,parallelejecutará tantos trabajos a la vez como núcleos de CPU (lo que no necesariamente tiene sentido parawgetenlazado por la red IO), yxargsejecutará uno a la vez.Una buena característica que
parallelha terminadoxargses mantener separada la salida de los trabajos que se ejecutan simultáneamente, pero si no le importa,xargses más probable que esté preinstalada.fuente
jobsdepende de muchos factores: latencia de ruta, ancho de banda de ruta, políticas de servidor remoto, etc.aria2 hace esto.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Ejemplo: aria2c http://example.org/mylinux.iso
fuente
Puede implementar eso usando Python y la biblioteca pycurl. La biblioteca pycurl tiene la interfaz "multi" que implementa su propio bucle par que permite múltiples conexiones simultáneas.
Sin embargo, la interfaz es bastante similar a C y, por lo tanto, un poco engorrosa en comparación con otro código más "pitónico".
Escribí un contenedor para él que construye un cliente más completo similar al navegador. Puedes usar eso como un ejemplo. Vea el módulo de cliente pycopia.WWW.client . El HTTPConnectionManager envuelve la interfaz múltiple.
fuente
Esto funciona, y no lo hará DoS local o remoto, con los ajustes adecuados:
fuente
Parte de la página de manual de GNU Parallel contiene un ejemplo de un wget recursivo paralelo.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML se descarga dos veces: una para extraer enlaces y otra para descargar en el disco. Otro contenido solo se descarga una vez.
Si no necesita la recursividad, la respuesta del ephemient parece obvia.
fuente
Las víctimas de su descarga paralela no se divertirán: esperan que una conexión sirva a cada cliente, configurar varias conexiones significa menos clientes en general. (Es decir, esto se considera comportamiento grosero).
fuente