1.编写健康检查脚本:third_health.sh (健康检查是eureka的healthCheckUrlPath)
#!/bin/bash
datestr=`date "+%Y-%m-%d %H:%M:%S"`
echo "$datestr : check start"
curl -s localhost:9004/actuator/health > /dev/null
[ $? -eq 0 ] && echo "$datestr : server is running"
[ $? -ne 0 ] && echo "$datestr : server is not running, restart" && sh /data/app.sh third-server restart
如果$?获取到curl执行状态不等于0,运行不成功,则执行&&后的重启服务命令
2.用crontab定时任务来执行上面的健康检查脚本,每15分钟检查一次,编辑crontab后两分钟会自动生效,不用重启crontab
Linux运行 crontab -e 然后输入i,进入编辑模式,加入如下配置:
*/15 * * * * nohup sh /data/security/health/third_health.sh 1>>"/data/security/health/third_health.log" 2>&1 </dev/null &
Ctrl+c退出编辑,:wq保存退出,等待crontab定时配置自动生效,日志会输出到指定的log文件里