sh脚本远程监控接口状态,并且实现定时器功能

目标:在linux服务器上,远程监控一个系统是否存活,

思路:利用curl 返回远程连接的状态码,如果不是200,说明接口异常,就发邮件(需要在linux配置),发短信(调用远程接口)、发微信(调用远程接口通过公众号实现)等发出报警通知,我是采用了第三种。为了不间断获取接口信息,我们这里是通过while do  sleep来实现的,免去了写定时器的麻烦。写好sh脚本之后直接运行就可以了,运行方式  ./xx.sh 或者 后台运行 nohup sh checkurl.sh  &,本次测试选用后台运行的方法。

具体步骤如下:

1.编写sh文件

#result_code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://113.113.106.186:8088/xxx`
#!/bin/bash
#Author:
#设置变量,url为你需要检测的目标网站的网址(IP或域名)
http_addr=http://113.113.106.186:8088/xxx
#定义函数get_http_status:
#使用curl命令检查http服务器的状态
#-m设置curl不管访问成功或失败,最大消耗的时间为5秒,5秒连接服务为相应则视为无法连接
#-s设置静默连接,不显示连接时的连接速度、时间消耗等信息
#-o将curl下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容)
#-w设置curl命令需要显示的内容%{http_code},指定curl返回服务器的状态码
get_http_status() {
        status_code=`curl -m 35 -s -o /dev/null -w %{http_code} $http_addr`
}
#循环执行检测方法
while :
do
       get_http_status
       date=$(date +%Y%m%d-%H:%M:%S) 
#生成报警邮件的内容		
       #echo "当前时间为:$date
       #$url服务器异常,状态码为${status_code}
       #请尽快排查异常." 
       
#指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志
#-ne 不等于
       if [ "$status_code" -ne 200 ];then
			  echo "$url连接失败" 
			  curl "http://weixin.xxxtest&describe=server exception&dealPerson=jaxwan&dealTime=10minute&remark=请尽快处理&url=https://www.csdn.com&username=wanwenzhe"
			 
       else
            echo "$url连接正常" 
			echo "221"
       fi
	   #多少秒检测一次
       sleep 60
	   
done

2.运行

直接运行的方式: ./checkapp.sh

后台运行的方式:命令:nohup sh checkapp.sh  &

并且输出内容到sh文件的同级目录的nohup.out文件内

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

buyaopingbixiazai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值