【发布时间】:2020-01-28 13:27:51
【问题描述】:
我有特定服务的 url 列表。 想要根据响应验证我所有的 url 是否正在运行,并打印特定服务未运行的状态。主要问题是如何显示特定服务未运行。
while read url; do
curl -o /dev/null --silent --head --write-out '%{http_code}' "$url"
# echo " $LINE"
done < softwareurls.txt
status="$(curl -Is $url | head -1)"
validate=( $stats )
if [ ${validate[-2]} == "200" ]; then
echo OK
else
echo NOT RESPONDING
fi
softwareurls.txt:示例
service1=http://192.168.70.10:8080/
service2=http://192.168.80.170:9000/shell
service3=http://192.168.10.10:8085/
........
servicen=http://www.sample.com/
【问题讨论】:
-
你正在快速关闭你的时间。现在,您对每个 URL 运行 curl,然后检查状态。您应该将 done 语句移到脚本的末尾。这样它将在每个 url 上运行 curl,检查它的状态,说它是否好,然后继续下一个。