美文网首页运维日常
Shell脚本检测HTTP服务状态

Shell脚本检测HTTP服务状态

作者: 大白菜的猪猪 | 来源:发表于2019-11-23 15:17 被阅读0次

    编程需求:

    在项目有web服务器的时候,监控服务器的状态是非常重要的一项任务,虽然可以通过手动执行命令来进行检测,但是显然非常的耗费时间和人力;因此采用脚本+周期性计划任务的形式显得更加的合理化!

    使用curl命令对网站进行监控时,可以根据HTTP服务端返回的状态码,判断一台Web服务器状态是否正常!当出现错误的时候,应该还能够自动实现报警功能!!!


    源代码:


    #!/bin/bash

    #功能描述:使用curl访问具体的HTTP页面,检测HTTP状态码

    #CURL选项说明

    #-m 设置超时时间;

    #-s 设置静默时间;

    #-o 下载数据另存为;

    #-w 返回附加信息,http状态码;

    #http服务器IP地址

    url=web服务器IP地址/index.html对应页面的html文件

    如:127.0.0.1/index.html

    #日期

    date=$(date +"%Y-%m-%d %H:%M:%S")

    #HTTP状态码

    status_code=$(curl -m 3 -s -o /dev/null -w %{http_code} $url)

    #邮件报警

    mail_to="root@localhost"

    mail_subject="http_warning"

    #如果状态码不等于200,即判定为http服务出现异常

    if [ $status_code -ne 200 ];then

            mail -s $mail_subject $mail_to <<- EOF

            检测时间为:$date

            $url 页面异常,服务器返回状态码:${status_code}

            请尽快检查

            EOF

    else

    cat >> /var/log/http_check.log <<- EOF

            $date "$url 页面正常"

            EOF

    fi


    脚本运行结果


    当状态错误时,这里是没有启动http服务时:

    /root/check_http_curl.sh

    您在 /var/spool/mail/root 中有邮件

    #进入邮件系统查看

    mail -u root

    N 36 root Sat Nov 23 14:25 20/705 "http_warning"

    邮件信息如下:

    检测时间为:2019-11-23 14:25:41

    http://127.0.0.1/index.html 页面异常,服务器返回状态码:404

    请尽快检查


    正常状态下

    /root/check_http_curl.sh

    cat /var/log/http_check.log

    检测时间为:2019-11-23 14:46:30

    "http://127.0.0.1/index.html 页面访问正常"

    在/var/log/httpd_check.log文件内就会记录查询时间,状态正常的消息


    Shell+crontab周期性计划任务


    与周期性计划任务连用,实现自动运行脚本自动检测HTTP服务状态.


    1.给脚本赋予执行权限,不然无法启动脚本

    chmod +x check_http_curl.sh

    2.添加周期性计划任务

    crontab -e -u root

    */1 * * * * /root/check_http_curl.sh

    具体频率应该根据实际情况设置,这里为了方便观察,写的是每分钟都运行一次!

    检测时间为:2019-11-23 14:53:01

    "http://127.0.0.1/index.html 页面访问正常"

    检测时间为:2019-11-23 14:54:01

    "http://127.0.0.1/index.html 页面访问正常"

    相关文章

      网友评论

        本文标题:Shell脚本检测HTTP服务状态

        本文链接:https://www.haomeiwen.com/subject/emdhwctx.html