小博是运行在OpenShift云平台上面的,偶尔会遇到宕机的情况!

最近在复习shell,顺手写个shell脚本监测网站运行情况,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
#!/bin/bash  
#配置你的Openshift ssh用户名  
sshid=52c21fde5973caed4d0003c0  
#脚本运行部分  
curl -I www.ansen.org 2> /dev/null | head -1 | grep -q 200  
s=$?  
  
let t=`date +"%M"`%10  
if [ $t -eq 0 ];  
then  
  
if [ $s != 0 ];  
then  
  
/usr/bin/gear stop 2>&1 /dev/null  
/usr/bin/gear start 2>&1 /dev/null  
echo "`date +"%Y-%m-%d %I:%M:%S"` restarted" > /var/lib/$sshid/app-root/data/web_error.log  
fi  
else  
echo "`date +"%Y-%m-%d %I:%M:%S"` is ok" > /var/lib/openshift/$sshid/app-root/data/web_run.log  
fi

  

链接到~/app-root/repo/.openshift/cron/minutely里面,每10分钟检测一次,如果网站宕机了,自动重启app

感谢@vmx的解答

关于gear命令,请查看

https://github.com/openshift/origin-server/blob/master/node/misc/bin/rhcsh#L106-L128