监控URL返回非200后执行重启脚本

脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

TARGET_ADDR=$1
TARGET_STATE=0


while true ;do

echo `date +"%Y-%m-%d %H:%M:%S"` start access ${TARGET_ADDR} >> statusMonitor.log
if [ $TARGET_STATE -gt 3 ];then
echo `date +"%Y-%m-%d %H:%M:%S"` can not access ${TARGET_ADDR} ,service will reboot!
echo "&&&&&& reboot server!"
nohup ~/bin/restart.sh >> restart.log 2>&1 &
sleep 360
let TARGET_STATE=0
fi

HTTP_CODE=`curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" ${TARGET_ADDR}`
if [ "${HTTP_CODE}" != 200 ];then
echo `date +"%Y-%m-%d %H:%M:%S"` The ${TARGET_STATE} time can not access
echo "****** Error: Down!" >> statusMonitor.log
let TARGET_STATE=TARGET_STATE+1
else
echo "###### success" >> statusMonitor.log
fi
sleep 10
done

执行

1
./checkRunningStatus.sh www.lilhui.com &