对于我们服务器部署的项目来说,我们需要监控部分核心业务到底是不是存活状态,尤其是单节点的部署。
这里运用Unix中的crontab来周期性执行shell脚本。
首先crontab安装:
1、安装cron主程序:yum install vixie-cron
2、然后安装cron守护程序:yum install crontabs
3、然后启动服务:service crond start
这里我的脚本命名为:server_survival.sh,最后贴出代码
4、运行 crontab –e 添加定时任务
* * * * * /scripts/data/server_survival.sh(每分钟执行一次server_survival.sh)
上面*一次对应 分 小时 日 月 星期
“*”代表取值范围内的数字, “/”代表”每”, “-”代表从某个数字到某个数字, “,”分开几个离散的数字
5、业务发生异常需要邮件通知相关人员,则需要配置邮件发送,不需要者改掉脚本中方法即可,附上百度经验邮件配置的方法:https://jingyan.baidu.com/article/ce43664953baee3772afd378.html
6、接下来看脚本:
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# File Name: server_survival.sh
# Author: AdminSong
# mail: 1126481986@qq.com
# Created Time: 2018年5月23日 星期四 19时00分21秒
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #! /bin/bash
time=$(date "+%Y%m%d-%H%M%S") #realm_name为接口域名 realm_name=https://www.abc.com
#邮件发送 function sendmail(){ #email_host为发生异常邮件收件人,如果收件人有多个,格式("1126481986@qq.com","1126481986@qq.com") email_host=("1126481986@qq.com")
for email in $email_host do echo "接口:$1 请求不成功,请处理!"|mail -s "接口:$realm_name$1 请求不成功,请处理!" $email done
}
#访问接口判断http_code是否为200,如果不为200,则接口异常,调用邮件发送 function request_url(){ #这几定义需要检测核心业务,如果业务是删除或者修改建议接口作参数效验,多个接口()内用逗号隔开的字符串 urls=("/login/manageLogin") for url in $urls do http_code=curl -I -m 10 -o /dev/null -s -w %{http_code} $realm_name$url if ["$http_code" != "200"];then echo "$time 请求接口:$url 不成功" sendmail $realm_name$url fi done } request_url