• 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

    每天进步一点点!
  • 相关阅读:
    silverlight 调用默认打印机
    拿来主意
    关于js智能提示的封装(修订版)
    silverlight 获取文本框焦点
    silverlight Timer
    winform 中写app.config文件时 调试情况下没有改变的原因
    关于asp:GridView和dx:ASPxGridView固定表头的jquery代码封装
    Microsoft Visual Studio 2010的前世今生
    游戏开发之我见
    JS中数组去重
  • 原文地址:https://www.cnblogs.com/qianjunjun/p/14270584.html
Copyright © 2020-2023  润新知