shell脚本案例-监控接口

案例需求

URL监控脚本,对某个URL进行监控,返回值为200则代表成功访问。

脚本应用场景:

WEB站点监控

解决问题

URL监控

页面监控

脚本思路

1、使用curl访问一次URL,并将输出保存

2、访问输出文件,获取返回值

3、判断返回值是否和初始预设的返回值相等,并对应输出

实现代码

    #!/bin/bash
    # 
    #Author: www.zutuanxue.com
    #Created Time: 
    #Release: 
    #Description: URL监控脚本
    #监控阈值可以是: 状态码、页面字符串、页面所有内容
    #本例以状态码为例
    
    #variables
    init_url_status=200
    temp_file=`mktemp /tmp/check_url.XXX`
    
    #help
    if [ -z "$1" ]||[ "$1" == "--help" ];then
       echo "$0 url"
       echo "--help: 打印该帮助"
    fi
    
    #如果用户没有传参则退出
    [ $# -lt 1 ]&&exit 1
    #main
    
    #1、使用curl命令访问一次URL
    #1.1 判断脚本依赖命令是否存在
    [ ! -x /usr/bin/curl ]&&echo "curl: not found command"&&exit 1
    
    #1.2 访问一次URL
    curl -I $1 &> $temp_file
    
    
    #2、从输出中截取状态码
    url_status=`grep "HTTP/1.1" $temp_file|cut -d " " -f2`
    
    #2.1如果取值失败直接报错(测试发现当无法访问URL时会在第三步中报比较错误,所以这里取不到值就不往下走了)
    [ -z "$url_status" ]&&echo -e "\033[31mstatus:NULL\033[0m"&&exit 1
    
    
    #3、判断状态码是否和预设的一致
        #3.1 一致  输出绿色字体 "status:200"
        #3.2 不一致 输出红色字体 "status:XXX"
    
    if [ $init_url_status -eq $url_status ];then
        echo -e "\033[32mstatus:$url_status\033[0m"
    else
        echo -e "\033[31mstatus:$url_status\033[0m"
    fi
    
    #4、删除临时文件
    rm -f $temp_file

案例思考

    页面监控方法(监控页面字符串或全页内容)
 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值