30-shell脚本案例-监控接口-《shell脚本》

admin 2025-11-06 14:36:35 系统网络 来源:ZONE.CI 全球网 0 阅读模式
  • 案例需求
  • 脚本应用场景:
  • 解决问题
  • 脚本思路
  • 实现代码

    案例需求

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

    脚本应用场景:

    WEB站点监控

    解决问题

    URL监控页面监控

    脚本思路

    1、使用curl访问一次URL,并将输出保存2、访问输出文件,获取返回值3、判断返回值是否和初始预设的返回值相等,并对应输出

    实现代码

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

    01-shell脚本介绍-《shell脚本》

    一、shell脚本是什么二、为什么要学shell,而不是其他计算机语言三、学习这门课程的优势四、学了能干什么五、学习什么内容六、学习的技巧七、成长路径八、学习环
    评论:0   参与:  18