Pregunta ¿Cómo iniciar múltiples URL por proceso con cURL?


Estoy intentando descargar una lista de URL con cURL con múltiples URL por proceso. Lo siguiente funciona pero devuelve un resultado extraño si xargs -L parámetro es más que 1. Quiero iniciar 8 procesos con cada uno obteniendo 4 urls para no generar demasiados.

curl url1...url4

cat urls.txt | xargs -n 1 -L 4 -P 8 curl -I -s -o /dev/null -w "%{http_code} %{url_effective}\n" 

El resultado es bastante caótico.

503 http://somewebsite.txt
404 http://somewebsite.txt
503 http://somewebsite.txt
404 http://somewebsite.txt
HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 24 Nov 2016 10:11:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Access-Control-Allow-Origin: *

404 http://somewebsite.txt
HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 24 Nov 2016 10:11:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Access-Control-Allow-Origin: *

404 http://somewebsite.txt

1


origen




Respuestas:


No parece un problema del lado del cliente. Parece un problema de servidor, como un jsp que no compila.

Puedes investigar con curl -vvv para tener más información.

Además, cuando se resuelva el problema, es probable que desee utilizar xargs -n 4 en lugar de "-n 1 -L 4".


0



¿-N4 concatenan líneas? Para "url 1 url 2 url 3 url 4" - Testr
Esto sucede con cualquier servidor por cierto. - Testr
Sí, "-n 4" concatenan líneas. Esto es lo que quieres si quieres disminuir el engendro. - Setop
Esto funciona para mí en contra "en.wikipedia.org/wiki/ "; servidor. Los artículos se descargan y las conexiones se reutilizan. - Setop