您的位置:首页 > 其它

第一天 自动升级脚本部署

2017-11-16 15:52 190 查看
#!/bin/bash

#判断是否有备份文件夹,没有自动创建

for ((a = 1;a <=3; a++))

 do

  if [ ! -d "/home/rollback" ];then

    mkdir /home/rollback

    echo "create rollback folder"

    continue

    else

    echo "rollback already exists"

    break

    fi

  done

if [ ! -d "/home/rollback" ];then

 echo "The rollback folder cannot be created"

 echo "NOW OUT update xxxx SHELL"

 exit

 fi

for ((b = 1 ;b <= 3 ;b++))

do

rm -rf /home/rollback/*

break

done

#判断并清空备份文件夹

if [  -d "/home/rollback/xxxx" ];then

 echo "The rollback/xxxx folder is not empty"

 echo "NOW OUT update xxxx SHELL"

 exit

fi

if [  -f "/home/rollback/xxxx.tar" ];then

 echo "/home/rollback/xxxx.tar already exists "

 echo "NOW OUT update xxxx SHELL"

 exit

fi

for ((d=1;d<=1;d++))

do

#正式升级过程,将原文件移动到备份文件夹,以备回滚版本

if [ ! -d "/home/rollback/xxxx" ];then

 mv /home/xxxx* /home/rollback/

 break

 fi

 done

#判断移动过程是否准确

 if [ ! -d "/home/rollback/xxxx" ];then

 

   if [ ! -d "/home/xxxx" ];then

    echo "using xxxx is lost"

    echo "NOW OUT update xxxx SHELL"

    exit

    else

    echo "/home/xxxx can not move to /home/rollback/"

    echo "NOW OUT update xxxx SHELL"

    exit

   fi

 fi

#判断是否有待升级工程文件

for ((e=1;e<=3;e++))

do

if [ ! -d /home/backup1/xxxx ];then

 /home/getxxxx.sh

 break

 fi

done

#移动新版本到指定项目路径

if [ -d /home/backup1/xxxx ];then 

 echo "Get ready to start upgrading "

 else

 echo "The xxxx package does not exist before upgrading "

    echo "NOW OUT update xxxx SHELL"

    exit

 fi

#循环杀死程序,直到杀死程序或停止升级

for ((f=1;f<=3;f++))

 do

 ########################################################

  num=`ps -ef |grep java|grep -v "grep"|grep -v "tomcat6.0.29_1"|awk '{print $2}'`

 ########################################################

  if [ ! -n "$num" ];then

    kill -9 $num

   else

    echo "The xxxx process has been killed"

    break

  fi

done

if [ ! -n "$num" ];then

 echo "The xxxx process cannot be killed "

 echo "NOW OUT update xxxx SHELL"

 exit

fi

#判断是否新版本工程文件已在制定路径

for ((g=1;g<=3;g++))

 do

  if [ ! -d /home/xxxx ];then

   mv /home/backup1/* /home/

   else

   echo "The upgrade pack is ready ..."

   break

   fi

  done

 if [ ! -d /home/xxxx ];then

   echo "New upgrade pack has been lost"

   echo "NOW OUT update xxxx SHELL"

   exit

   fi

#清缓存

for ((h=1;h<=3;h++))

 do

 ################################################

  if [  -d $CATALINA_HOME/work/Catalina ];then

   cd $CATALINA_HOME/work/

#################################################

   rm -rf Catalina

   else

   echo "Cache cleared"

   break

   fi

  done

##############################################

 if [  -d $CATALINA_HOME/work/Catalina ];then

 #############################################

   echo "Catalina can not remove"

   echo "NOW OUT update xxxx SHELL"

   exit

   fi

#########################################

#重新启动服务

startup.sh

########################################

 sleep 20

 ########################################################

 num=`ps -ef |grep java|grep -v "grep"|grep -v "tomcat6.0.29_1"|awk '{print $2}'`

 ########################################################

#判断是否重启成功

 if [  -n "$num" ];then

   echo " The xxxx program is start "

   else

   echo "The xxxx program is not start"

   echo " MOW OUT xxxx update SHELL"

   break

  fi

#升级完成

echo "The xxxx program has been successfully upgraded"

待改进:判断和循环重复出现,可改为函数调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: