Chinaunix

标题: 请教脚本检测服务器返回码并统计、判断数量的写法。 [打印本页]

作者: dx8439    时间: 2019-10-24 10:49
标题: 请教脚本检测服务器返回码并统计、判断数量的写法。
想写一个脚本,就是循环检测这三个服务器的web服务器返回码,是不是200,然后如果超过两台服务器返回200,就是往下执行yes的代码,如果少于两台就执行no的代码,请教大家该怎么写?
for ip in {172.17.143.73,172.17.143.72,172.17.253.84}
do
  statuscode=`curl -I -m 10 -o /dev/null -s -w %{http_code} $ip:8080`
if [ $statuscode == 200 ];then
  echo "yes"
  ......
else
  echo "no"
  ......
fi
done

目前三台服务器都通的情况下,实行脚本打印的效果是:
# sh test.sh
yes
yes
yes



作者: jzsjm1002    时间: 2019-10-24 10:49
本帖最后由 jzsjm1002 于 2019-10-24 13:59 编辑
  1. #!/bin/bash
  2. #

  3. IP=(
  4. 172.17.143.73:8080
  5. 172.17.143.72:8080
  6. 172.17.253.84:8080
  7. )

  8. for i in ${IP[@]}
  9. do
  10.   ret=`curl --connect-timeout 1 -I -m 10 -o /dev/null -s -w %{http_code} $i`
  11.   [ $ret -eq 200 ] && let a++
  12. done

  13. [[ $a -ge 2 ]] && echo "YES" || echo "NO"
复制代码


作者: dx8439    时间: 2019-10-24 18:33
本帖最后由 dx8439 于 2019-10-24 19:16 编辑

回复 2# jzsjm1002

谢谢大神指导!


作者: dx8439    时间: 2019-10-24 19:15
回复 2# jzsjm1002

我知道怎么写了,谢谢大神指导!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2