shell脚本批量检查网站是否正常

#!/bin/bash
URL_LIST=(' www.baidu.com'  'www.123baidu.com' 'www.baidu.com')         #网址列表
for URL in ${URL_LIST[*]}; do                      
    FAIL_COUNT=0                #设置一个变量来统计访问失败次数
    for ((i=1;i<=3;i++)); do            
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)    #超时时间是3秒
        if [ $HTTP_CODE -eq 200 ]; then
            echo "$URL OK"      #访问正常打印ok
            break
        else
            echo "$URL retry $FAIL_COUNT"
            let FAIL_COUNT++            #如果不ok的话就执行计数加一
        fi
    done
    if [ $FAIL_COUNT -eq 3 ]; then              #如果FAIL_COUNT=3,就发出告警
        echo "Warning: $URL Access failure!"
    fi
done

执行脚本:sh check_url.sh

执行结果如下:

www.baidu.com OK
www.123baidu.com retry 0
www.123baidu.com retry 1
www.123baidu.com retry 2
Warning: www.123baidu.com Access failure!
www.baidu.com OK

shell脚本和python的思路一样,定义网址列表,遍历列表进行请求判断,如果三次请求都失败,那么发出告警。

本脚本对于新手值得一提的是这行代码“

curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL

这是获取网址返回值,是测试中非常常用的方法,一定要记住。-o /dev/null 表示重定向输出,-s表示静默模式,-w %{http_code}表示获取响应码

curl更详细的用法可以参考:https://www.cnblogs.com/duhuo/p/5695256.html

每天进步一点点!
原文地址:https://www.cnblogs.com/qianjunjun/p/14270584.html