使用shell监控指定的页面是否正常访问,咱们能够采起请求某个接口的方式,若是请求错误到达必定次数,则发送警告信息到指定手机
环境:CentOS七、Tomcat9shell
1.1 建立个tomcatChenk.sh文件缓存
[root@localhost ~]# vi /usr/sbin/tomcatChenk.sh
1.2 编写内容tomcat
#!/bin/sh ################################### 基本参数配置 ############################################ # 要监控的页面地址 reqUrl=http://baidu.com # 服务名称 serverName=Tomcat # 通知联系人电话 phoneNumber=186xxxxxxxx # tomcat启动路径 startTomcat=/opt/tomcat/bin/startup.sh # tomcat缓存路径 tomcatCatalina=/opt/tomcat/work/Catalina # 日志文件存放路径 checkLogPath=/opt/tomcat_check_log.txt # 重试请求次数 checkNum=1 # 最大重试请求次数 maxCheckNum=5 # 验证结果 checkResult=false ################################## 定义函数 ############################################# # 大于 -gt (greater than) # 小于 -lt (less than) # 大于或等于 -ge (greater than or equal) # 小于或等于 -le (less than or equal) # 不相等 -ne (not equal) # 相等 -eq (equal) # 定义一个函数 check(){ echo "$(date +'%F %H:%M:%S') [info]--------------- 开始监控$serverName --------------" while [ true ] do # 1.获取请求 http://baidu.com 的返回状态,成功返回为200 reqCode=`curl -s -w %{http_code} -o $checkLogPath $reqUrl` # 2.验证请求验证接口状态是否正常,正常则退出验证 if [ $reqCode -ne 200 ]; then echo "$(date +'%F %H:%M:%S') [info]第$checkNum次请求监控接口失败,返回状态为[$reqCode]" else checkResult=true break fi # 获取Tomcat进程ID(暂未使用,可扩展) # tomcat_id=$(ps -ef | grep tomcat | grep -w 'tomcat' | grep -v 'grep' | awk '{print $2}') # 3.计算执行次数,若是执行次数大于最大重试请求次数则结束这次验证,不然中止5秒进行下一次验证 let checkNum=$checkNum+1 if [ $checkNum -gt $maxCheckNum ]; then break else sleep 5 fi done; if [ $checkResult == true ]; then echo "$(date +'%F %H:%M:%S') [info]$serverName服务运行正常" else curl -k -i -d 'tpl_id=199141&mobile=18812345678&tpl_value=%23code%23%3D110911&key=key值' http://v.juhe.cn/sms/send echo "$(date +'%F %H:%M:%S') [info]$serverName服务运行异常,发送预警信息到指定手机" fi echo "$(date +'%F %H:%M:%S') [info]--------------- 结束监控$serverName --------------" } # 调用check函数 check
1.3 给文件分配权限less
[root@localhost opt]# chmod 755 tomcatChenk.sh
添加到指定的定时任务crontab中便可,具体请参照Linux(CentOS)定时任务删除Tomcat日志信息便可curl