openshift每天都会维护,维护后应用需要重启,不然再访问就会503,需要手动进入后台重启应用。
故用如下shell每天自动重启所有应用,每分钟检查一次,如果宕机每隔10分钟重启一次(防止频繁重启造成服务器压力过大)。
#!/bin/bash
#配置你的Openshift ssh用户名
sshid=你的Openshift ssh用户名
#脚本运行部分,替换为你自己的应用
curl -I movie.wgwxf.tk 2> /dev/null | head -1 | grep -q '200\|302'
s=$?
if [ $s != 0 ];
then
echo "`date +"%Y-%m-%d %I:%M:%S"` down" >> /var/lib/openshift/$sshid/app-root/data/web_error.log
#分钟%10 取余
let t=`date +"%M"`%10
#每隔10分执行一次,防止连续多次重启,服务器压力太大
if [ $t -eq 0 ];
then
#重启日志叠加记录>>,发现太大了可以删除,或者改成覆盖记录>
echo "`date +"%Y-%m-%d %I:%M:%S"` restarting..." >> /var/lib/openshift/$sshid/app-root/data/web_error.log
/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/openshift/$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
将以上shell存入ctl_all_restart.sh中,放到/var/lib/openshift/你的用户名/app-root/repo/.openshift/cron/minutely/目录下
赋执行权限:
chmod 711 ctl_all_restart.sh
DONE!!!
下载地址:http://download.csdn.net/detail/wgwxf/6974319
转载请注明出处http://blog.csdn.net/wgwxf/article/details/20132563!
另测试方法:
可以手动停掉应用,ctl_all stop,然后执行shell或到点后看看应用是否启动。