Linux 轻量级自动化部署 Shell

下面是自动化部署脚本,可以根据自己的业务自行更新。

如有大批量更新业务,可以尝试自己弄个简单的Linux客户端实现一键批量部署。

传送门 JAVA连接Linux并执行命令

 

#!/bin/bash
## 财务对账平台现网自动升级脚本V1.0
## By:财务平台小组 2019-03-15
## 执行缴费必传 6个参数 (没有特殊需求可以硬编码脚本中)
## 参数1项目路径 参数2项目名称 参数3新版本下载地址 参数4启动Shell脚本路径 参数5HTML文件更新路径 参数6 HTML安装路径

##项目路径
proDir=$1
##打包完成项目名
proName=$2
##新版本项目下载地址
downloadJarUrl=$3
##启动Shell缴费路径
startShell=$4
##新版本HTML下载地址
downloadHtmlUrl=$5
##HTML保存路径
HtmlPath=$6


## /home/zhanghui project-1.0.jar http://10.9.18.45:8080/project-1.0.jar /home/zhanghui/startup.sh http://10.9.18.45:8080/HFMS.zip /home/zhanghui/111434


## 项目备份保存路径
bfdir=$proDir/$(date +%Y)/$(date +%m)$(date +%d)/$(date +%H%M%S);
##项目下载临时保存名称
tempproName="temproject.jar"
##HTML下载临时保存名称
tempHtmlName="tempHtmlName.zip"

##创建备份路径
function createBfDir(){
 if [ -d "$bfdir"  ];then
    echo "the dir[$bfdir] is exit"
 else
    mkdir -p $bfdir
	echo "备份保存路径[$bfdir]创建完毕 "
 fi
 
}

## 备份项目
function copyProject(){
 cp $proDir/$proName $bfdir/$proName
 echo "项目备份完毕 [$bfdir/$proName]"
 zip -r $proDir/html.zip $HtmlPath/*
 echo "HTML备份完毕 [$proDir/html.zip]"
}

##下载最新项目
function dowloadProject(){
 echo "准备开始下载最新项目"
 wget $downloadJarUrl -O $proDir/$tempproName
 echo "项目下载完毕保存 保存路径[$proDir/$tempproName]";
 wget $downloadHtmlUrl -O $proDir/$tempHtmlName
 echo "HTML下载完毕保存 保存路径[$proDir/$tempproName]";
}

##停止当前运行项目进程
function killProject(){
 pid=`ps -ef|grep $proName |grep -v grep|awk '{print $2}'`
 if [ -n "$pid" ];then
	echo "项目[${proName}]当前项目PID:${pid}"
    kill -9 $pid
	echo "执行 KIll -9 ${pid}"
 else
	echo "项目[${proName}]未运行"
 fi
}

##更新项目
function updateProject(){

 mv -f $proDir/$tempproName $proDir/$proName
 echo "项目更新完毕"
 unzip -o $proDir/$tempHtmlName -d $HtmlPath
 echo "HTML 更新完毕"
 ## 可以修改为自己启动项目的命令
 sh $startShell
 echo "项目启动完成"
}

echo "初始化请求参数"
echo "项目路径:$proDir"
echo "项目名称:$proName"
echo "项目更新地址:$downloadJarUrl"
echo "项目启动缴费路径:$startShell"
echo "HTML更新地址:$downloadHtmlUrl"
echo "HTML更新目录:$HtmlPath"


echo "1.创建备份项目路径"
createBfDir
echo "2.项目进行归档备份"
copyProject
echo "3.下载最新项目"
dowloadProject
echo "4.停止当前运行项目"
killProject
echo "5.更新项目"
updateProject
echo "系统重新部署完毕"
 

 

你可能感兴趣的:(linux,部署,JAVA)