Wie starte ich mehrere URLs pro Prozess mit cURL?

1369
Testr

Ich versuche, eine Liste von URLs mit cURL mit mehreren URLs pro Prozess herunterzuladen. Das Folgende funktioniert, aber es gibt ein seltsames Ergebnis zurück, wenn der xargs -LParameter mehr als 1 ist. Ich möchte 8 Prozesse mit jeweils 4 URLs starten, damit ich nicht zu viele spawne.

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

Das Ergebnis ist ziemlich chaotisch.

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

1 Antwort auf die Frage

0
Setop

Es sieht nicht aus wie ein clientseitiges Problem. Es sieht aus wie ein Serverproblem, wie ein Jsp, das nicht kompiliert wird.

Sie können mit untersuchen curl -vvv, um weitere Informationen zu erhalten.

Wenn das Problem behoben ist, möchten Sie wahrscheinlich xargs -n 4"-n 1 -L 4" verwenden.

Verkettet -n4 Zeilen? Zu "url 1 url 2 url 3 url 4" Testr vor 7 Jahren 0
Das passiert bei jedem Server übrigens. Testr vor 7 Jahren 0
Ja, "-n 4" verkettet Zeilen. Dies ist das, was Sie wollen, wenn Sie den Laich verringern möchten. Setop vor 7 Jahren 0
Dies funktioniert für mich gegen den "https://en.wikipedia.org/wiki/" -Server. Artikel werden heruntergeladen und Verbindungen werden wiederverwendet. Setop vor 7 Jahren 0