Linux服务器shell脚本自动部署java项目

2 篇文章 0 订阅
1 篇文章 0 订阅
  1. 服务器安装git
  2. 生成git密钥
  3. 将公钥配置到git仓库
  4. 安装maven并配置环境变量
  5. spring项目配置好环境变量文件,修改application.yml和pom.xml文件
  6. 服务器克隆git仓库,并切换好分支
  7. 拉取最新代码
  8. 项目编译打包
  9. 关闭运行中的项目并备份
  10. 复制编译好的jar包文件到指定目录
  11. 启动项目。

#!/bin/sh
#git pull and maven install project and deploy project
#define project path
AppName=spring.jar
DATE=`date '+%Y%m%d-%H%M'`
ProPath=/data/server/
BuildPath=$ProPath/spring/target
BuildApp=$BuildPath/$AppName
DeployPath=/data/spring
DeployApp=$DeployPath/$AppName
BakApp=$DeployPath/bakFile/$AppName_$DATE
LogFile=$DeployPath/$AppName.log
#JVM参数
JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"


#function
#start
function start()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`

	if [ x"$PID" != x"" ]; then
	    echo "$AppName is running..."
	else
		nohup java -jar  $JVM_OPTS target/$AppName > /dev/null 2>&1 &
		echo "Start $AppName success..."
	fi
}
#stop
function stop()
{
    echo "Stop $AppName"
	
	PID=""
	query(){
		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
		echo "---$PID---"
	}

	query
	if [ x"$PID" != x"" ]; then
		kill -TERM $PID
		echo "$AppName (pid:$PID) 关闭中..."
		while [ x"$PID" != x"" ]
		do
			sleep 1
			query
		done
		echo "--- $AppName 已关闭!!!---."
	else
		echo "--- $AppName 已关闭---."
	fi
}
#restart 
function restart()
{
    stop
    sleep 2
    start
}
#check status
function status()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
    if [ $PID != 0 ];then
        echo "$AppName is running..."
    else
        echo "$AppName is not running..."
    fi
}

#start deploy
#cd dir
echo "---1.进入项目目录---"
cd $ProPath
if [[ $? == 0 ]]
   then
    echo "---1.1进入项目目录成功---" 
else
    echo "####1.2进入项目目录失败,退出####"
    exit 0
fi
#start git pull
echo "---2.拉取代码---"
git pull origin abc
if [[ $? == 0 ]]
   then
    echo "---2.1拉取代码成功---" 
else
    echo "####2.2拉取代码失败,退出####"
    exit 0
fi
echo "---3.项目打包---"
mvn clean package -Dmaven.test.skip=true -P test
if [[ $? == 0 ]]
   then
    echo "---3.1项目打包成功---" 
else
    echo "####3.2项目打包失败,退出####"
    exit 0
fi
echo "---4.关闭运行中的项目---"
stop
if [[ $? == 0 ]]
   then
    echo "---4.1关闭项目成功---" 
else
    echo "####4.2关闭项目失败,退出####"
    exit 0
fi
echo "---5.备份原项目---"
mv $DeployApp $BakApp
if [[ $? == 0 ]]
   then
    echo "---5.1原项目备份成功---" 
else
    echo "####5.2原项目备份失败,退出####"
    exit 0
fi
echo "---6.部署新项目---"
mv $BuildApp $DeployApp
if [[ $? == 0 ]]
   then
    echo "---6.1新项目部署成功---" 
else
    echo "####6.2新项目部署失败,退出####"
    exit 0
fi

echo "---7.启动项目---"
nohup java -jar $DeployApp > $LogFile  2>&1 &
if [[ $? == 0 ]]
   then
    echo "---7.1新项目启动成功---" 
else
    echo "####7.2新项目启动失败,退出####"
    exit 0
fi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值