监控服务是否正常并重启
对于单机服务,服务正常与否需要监控,出现访问超时异常后需要重启服务,编写小脚本如下:
1)访问服务某个接口根据实际情况编写状态码获取脚本
num=$(curl 'http://xxxxx' | awk -F '"' '{sub(/:/,""); sub(/,/,""); print $3}')
2)判断接口状态码是否正常,正常记录日志,不正常重启服务并记录日志
#!/bin/sh
num=$(curl 'http:xxxxx' | awk -F '"' '{sub(/:/,""); sub(/,/,""); print $3}')
logDate=`date '+%Y%m%d'`
if [ $num = 0 ]
then
echo "----------服务正常!!------" $(data +"%Y-%m-%d %H:%M:%S") >>/data/monitorjk$logDate.log
else
NAME=xxxx.jar
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
nohup java -jar /data/xxxx.jar &
echo "------重启服务成功!!---------" $(data +"%Y-%m-%d %H:%M:%S") >>/data/monitorjk$logDate.log
fi