如何使用 cURL 在每个进程中启动多个 URL?

如何使用 cURL 在每个进程中启动多个 URL?

我正在尝试使用 cURL 下载 URL 列表,每个进程有多个 URL。下面的方法有效,但如果参数xargs -L大于 1,它会返回一个奇怪的结果。我想启动 8 个进程,每个进程获取 4 个 URL,这样就不会生成太多 URL。

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" 

结果相当混乱。

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

这看起来不像是客户端的问题。这看起来像是服务器的问题,例如 jsp 无法编译。

您可以调查以curl -vvv获取更多信息。

另外,当问题解决后,您可能希望使用xargs -n 4“-n 1 -L 4”。

相关内容