循环 curl 调用并计算错误前的成功响应
loop a curl call & count successful responses before an error
我正在尝试测试和量化来自 HTTP 服务器的间歇性错误响应。我构建了一个可以发出必要请求的 curl 调用,但我厌倦了输入向上箭头和 return.
如何让curl重复请求直到遇到错误,然后输出错误前响应成功的次数?
这个 bash 食谱应该能满足您的需求。
i=0 ; while true ; do curl -o /dev/null -s https://www.google.com/ ; if [ $? -ne 0 ] ; then echo $i ; break ; fi ; i=$(($i+1)) ; echo -en "$i \r" ; sleep 1 ; done
分成多行:
i=0 # set counter to 0
while true # infinite loop
do
curl -o /dev/null -s https://www.google.com/ # silent curl request to site
if [ $? -ne 0 ]
then
# curl didn't return 0 - failure
echo $i
break # terminate loop
fi
i=$(($i+1)) # increment counter
echo -en "$i \r" # display # of requests each iteration
sleep 1 # short pause between requests
done
您可以选择将 cURL 输出重定向到一个文件,这样当它失败时您可以使用如下内容查看输出:
curl -v -o /dev/null https://google.com &> /tmp/output.txt
我正在尝试测试和量化来自 HTTP 服务器的间歇性错误响应。我构建了一个可以发出必要请求的 curl 调用,但我厌倦了输入向上箭头和 return.
如何让curl重复请求直到遇到错误,然后输出错误前响应成功的次数?
这个 bash 食谱应该能满足您的需求。
i=0 ; while true ; do curl -o /dev/null -s https://www.google.com/ ; if [ $? -ne 0 ] ; then echo $i ; break ; fi ; i=$(($i+1)) ; echo -en "$i \r" ; sleep 1 ; done
分成多行:
i=0 # set counter to 0
while true # infinite loop
do
curl -o /dev/null -s https://www.google.com/ # silent curl request to site
if [ $? -ne 0 ]
then
# curl didn't return 0 - failure
echo $i
break # terminate loop
fi
i=$(($i+1)) # increment counter
echo -en "$i \r" # display # of requests each iteration
sleep 1 # short pause between requests
done
您可以选择将 cURL 输出重定向到一个文件,这样当它失败时您可以使用如下内容查看输出:
curl -v -o /dev/null https://google.com &> /tmp/output.txt