Como iniciar vários urls por processo com cURL?

1

Estou tentando fazer o download de uma lista de URLs com cURL com vários URLs por processo. O seguinte funciona, mas ele retorna um resultado estranho se o parâmetro xargs -L for maior que 1. Eu quero lançar 8 processos com cada um recebendo 4 URLs para não gerar muitos.

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" 

O resultado é 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
    
por Testr 24.11.2016 / 11:10

1 resposta

0

Não parece um problema do lado do cliente. Parece um problema no servidor, como um jsp que não compila.

Você pode investigar com curl -vvv para ter mais informações.

Além disso, quando o problema é resolvido, é provável que você queira usar xargs -n 4 em vez de "-n 1 -L 4".

    
por 24.11.2016 / 11:21