shell脚本自动化部署服务

本文详细介绍了一种使用Shell脚本实现的自动化部署方案。该方案涵盖了从代码下载、编译、停止旧服务、更新部署到重启服务的全过程。特别强调了通过创建.run文件来标记部署状态,以及通过捕获Ctrl+C信号来确保部署流程的完整性和一致性。

shell脚本自动化部署

!/bin/bash

#export PATH=$PATH:/export/maven/bin

run_flag_dir="/data0/shell/deploy_workspace/Test"
if [ ! -d "$run_flag_dir" ]; then
    mkdir -p "$run_flag_dir"
fi

#判断是否正在部署,如果是则退出
if [ -f "$run_flag_dir/.run" ]; then
    echo "程序部署中,请勿重复部署!"
    exit 1
fi

#创建.run文件,标识脚本正在部署
touch "$run_flag_dir/.run"
#捕获Ctrl+C,删除.run文件,避免状态不一致
trap "rm -r $run_flag_dir/.run; exit 1" 2

export JAVA_HOME=/data0/usr/jdk1.8.0_60/

/bin/rm -rf ./deploy_workspace/Test

echo "##############################################################"
echo "开始git下载代码。。。"
echo "##############################################################"

cd /data0/shell/deploy_workspace
if [ ! -d "Test" ]; then
    git clone -b dev git@git.jd.com:AIBDP-Mobile/Test.git
    cd Test
    git pull
else
    cd Test
    git pull
fi


echo "##############################################################"
echo "开始编译代码。。。"
echo "##############################################################"
cd /data0/shell/deploy_workspace/Test/
#cp -rf face-web/src/main/config/test/* ai-web/src/main/resources/
#/bin/rm -rf mobile-web/src/main/config/test/jss.properties
cp -rf web/src/main/config/test/* web/src/main/resources/
mvn clean package -U -DskipTests -Dmaven.repo.local=/data0/repository
#mvn clean package  -DskipTests



if [ $? != 0 ]; then
    echo "##############################################################"
    echo -e 'mvn打包出错了,直接退出部署程序。。。';
    echo "##############################################################"
    /bin/rm -rf $run_flag_dir/.run;
    exit 1
fi




echo "##############################################################"
echo "开始停止tomcat。。。"
echo "##############################################################"
sh  /data0/usr/apache-tomcat-8.5.24/bin/shutdown.sh
sleep 3
ps -ef| grep "apache-tomcat-8.5.24" | grep -v grep |  awk  '{print $2}' | xargs kill -9
echo "====tomcat服务已停止成功。。。"
echo "##############################################################"

echo "##############################################################"
echo -e "开始部署程序。。。"
echo "##############################################################"
cd /data0/shell/deploy_workspace/Test/
/bin/rm -rf /data0/usr/apache-tomcat-8.5.24/webapps/ROOT*
unzip -q  mobile-web/target/ROOT.war -d  "/data0/usr/apache-tomcat-8.5.24/webapps/ROOT"



echo "##############################################################"
echo -e "开始启动tomcat。。。"
echo "##############################################################"
export CATALINA_OPTS="-Xms1024M -Xmx1024M -server -XX:PermSize=256M"
nohup sh /data0/usr/apache-tomcat-8.5.24/bin/startup.sh &


#删除.run文件,部署完毕
/bin/rm -rf $run_flag_dir/.run;

echo "##############################################################"
echo -e "开始打印日志。。。"
echo "##############################################################"

tail -f  "/data0/usr/apache-tomcat-8.5.24/logs/catalina.out"
View Code

 

转载于:https://www.cnblogs.com/zgzf/p/10525146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值