OpenShift空间出现503自动重启脚本完整教程

 

OpenShift的云主机会经常性的进行维护操作或者由于性能的原因出现503、502等错误,导致网站应用无法访问,一般来说,你可以登陆OpenShift的后台或者使用命令进行重启操作,但是甚为不便,要是能够让其自动检测到问题后自动重启应用,那就再好不过了。

网上搜索了一下,有很多大同小异的自动重启的shell脚本,下面是无需修改的改进版脚本,使用了变量来代替你的应用的信息:

#!/bin/bash

curl -I $OPENSHIFT_APP_DNS 2> /dev/null | head -1 |  grep -q '200|301|302'

s=$?

if [ $s != 0 ];
then
echo "`date +"%Y-%m-%d %I:%M:%S"` down" >> $OPENSHIFT_DATA_DIR/web_error.log
let t=`date +"%M"`%10
if [ $t -eq 0 ];
then
echo "`date +"%Y-%m-%d %I:%M:%S"` restarting..." >> $OPENSHIFT_DATA_DIR/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!!!" >> $OPENSHIFT_DATA_DIR/web_error.log
fi
else
echo "`date +"%Y-%m-%d %I:%M:%S"` is ok" > $OPENSHIFT_DATA_DIR/web_run.log
fi

将其保存为restart.sh,并复制到app-root/repo/.openshift/cron/minutely目录,使用

chmod 711 restart.sh命令或者使用WinSCP将其权限改为711

不过,当你执行完上面的步骤后,会发现,这个脚本会不起作用,网上的教程基本上没有告诉你还有一个最重要的步骤没做,安装Cron服务。

OpenShift空间出现503自动重启脚本完整教程

点击这个链接,找到名为“Cron 1.4 ”的服务,

OpenShift空间出现503自动重启脚本完整教程

点击添加。

成功安装后,你就可以手动停止应用,等待10分钟,看看是否能够成功重启了。