Как запустить несколько URL на процесс с помощью cURL?

1306
Testr

Я пытаюсь загрузить список URL с помощью cURL с несколькими URL на процесс. Следующее работает, но возвращает странный результат, если xargs -Lпараметр больше 1. Я хочу запустить 8 процессов, каждый из которых получает 4 URL, поэтому я не слишком много порождаю.

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

Результат довольно хаотичный.

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 ответ на вопрос

0
Setop

Это не похоже на проблему на стороне клиента. Это похоже на проблему с сервером, как jsp, который не компилируется.

Вы можете расследовать, curl -vvvчтобы получить больше информации.

Плюс, когда проблема решена, вы, вероятно, захотите использовать xargs -n 4вместо «-n 1 -L 4».

-N4 объединяет строки? "URL 1 URL 2 URL 3 URL 4" Testr 7 лет назад 0
Это происходит с любым сервером, кстати. Testr 7 лет назад 0
Да, "-n 4" соединить строки. Это то, что вы хотите, если вы хотите уменьшить спавн. Setop 7 лет назад 0
Это работает для меня против сервера "https://en.wikipedia.org/wiki/". Статьи загружаются и соединения используются повторно. Setop 7 лет назад 0

Похожие вопросы