服务器端 jetty 自动部署脚本

一个服务器端jetty容器自动备份和发版的脚本,已使用与生产环境。可集成到Jenkins中实现打包后自动备份发版。

 

文件:publish.sh

#!/bin/sh

SERVER_IP=`ifconfig |grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
APP_HOME=/opt/app
LOG_HOME=/opt/logs
WAR_HOME=/opt/deploy/warFiles
JETTY_HOME=/opt/jetty-app-8180
NOW_TIME=$(date +%Y%m%d%H%M)
WAR_NAME=app
BAK_DIR=last
SUFFIX='['$WAR_NAME']['$SERVER_IP']'

echo $SUFFIX compare old file and new file size

old_file_size=0
if [ -f $APP_HOME/$WAR_NAME.war ];then
    old_file_size=`du -b $APP_HOME/$WAR_NAME.war | awk '{print $1}' `
fi
    new_file_size=`du -b $WAR_HOME/$WAR_NAME.war | awk '{print $1}' `

if [ $old_file_size -ne $new_file_size ]
then
    echo $SUFFIX file has changed, should redeploy $WAR_NAME service

    echo $SUFFIX step 1. backup last backup file to $WAR_NAME.war_$NOW_TIME
    if [ ! -d $APP_HOME/$BAK_DIR ];then
        echo $SUFFIX Directory $APP_HOME/$BAK_DIR does not exist, make dir
        mkdir -p $APP_HOME/$BAK_DIR
    fi
    cd  $APP_HOME/$BAK_DIR
    if [ -f $WAR_NAME.war ];then
        mv  $WAR_NAME.war  $WAR_NAME.war_$NOW_TIME
    fi

    echo $SUFFIX step 2. backup old file to $APP_HOME/$BAK_DIR/$WAR_NAME.war
    cd  $APP_HOME
    cp  $WAR_NAME.war  $APP_HOME/$BAK_DIR/$WAR_NAME.war

    echo $SUFFIX step 3. copy new file into $APP_HOME
    cp  $WAR_HOME/$WAR_NAME.war  ./$WAR_NAME.war

    echo $SUFFIX step 4. restart jetty service...

    cd  $JETTY_HOME/bin
    sh  ./jetty.sh restart >/dev/null 2>&1

else
    echo $SUFFIX file not changed, skip redeploy steps
fi
echo $SUFFIX deploy success

回滚脚本:roll_back.sh

#!/bin/sh

SERVER_IP=`ifconfig |grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
APP_HOME=/opt/app
LOG_HOME=/opt/logs
JETTY_HOME=/opt/jetty-app-8180
NOW_TIME=$(date +%Y%m%d%H%M)
WAR_NAME=app    ##app的war包名
BAK_DIR=last    ##备份文件夹 
SUFFIX='['$WAR_NAME']['$SERVER_IP']'

echo $SUFFIX compare backup file and current file size

backup_file_size=0
if [ ! -f $APP_HOME/$BAK_DIR/$WAR_NAME.war ];then
    echo $SUFFIX no backup file found, rollback finished unsuccessfully!
    exit
else
    backup_file_size=`du -b $APP_HOME/$BAK_DIR/$WAR_NAME.war | awk '{print $1}' `
fi
    current_file_size=`du -b $APP_HOME/$WAR_NAME.war | awk '{print $1}' `

if [ $backup_file_size -ne $current_file_size ]
then
    echo $SUFFIX file has changed, should rollback $WAR_NAME service

    echo $SUFFIX step1. copy backup file from $APP_HOME/$BAK_DIR/$WAR_NAME.war to $APP_HOME/$WAR_NAME.war
    cd   $APP_HOME
    cp $APP_HOME/$BAK_DIR/$WAR_NAME.war $APP_HOME/$WAR_NAME.war

    echo $SUFFIX step 2. restart jetty service...

    cd  $JETTY_HOME/bin
    sh  ./jetty.sh restart >/dev/null 2>&1

else
    echo $SUFFIX file not changed, skip redeploy steps
fi
echo $SUFFIX deploy success

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值