快速部署脚本 Linux 版
注意!!!
注意!!!
注意!!!
所有脚本必须赋权 chmod 777 *.sh
1、后端脚本
脚本功能:
1、备份
2、停止
3、启动
4、控制台输出。
v4.0版本
说明:
1、适合上传速度慢的场景。
2.上传文件夹和启动文件夹分开
#!/bin/bash
echo "*********Steps 0 脚本开始 ************************************"
# Jar包名称
JAR_NAME=xxxx-auth.jar
# (服务名称)输出文件名称
SERVICE_NAME=xxxx-auth
# 公司名称
COMPANY_NAME=XXXX有限公司
# 系统名称
SYSTEM_NAME=XXXX管理平台
# 上传路径
SERVICE_UPLOAD_PATH="/home/uploadData/"
# 启动路径
SERVICE_START_PATH="/home/boot-server/"
# 备份路径 启动路径+备份路径
BACK_PATH=$SERVICE_START_PATH"back/"
# shellcheck disable=SC2027
BACK_DATA_PATH=$SERVICE_START_PATH"back/"$JAR_NAME"_"
# 控制台输出路径
OUT_PATH=$SERVICE_START_PATH"out/"
OUT_DATA=$SERVICE_START_PATH"out/"$SERVICE_NAME.out
BACK_DATE_NAME=$(date +%Y%m%d%H%M%S)
echo "*********Steps 1 备份历史文件 start! ************************"
cd $SERVICE_START_PATH || exit
if [ -f "$JAR_NAME" ]; then
echo SERVICE_START_PATH目录文件$JAR_NAME存在!
else
echo SERVICE_START_PATH目录文件$JAR_NAME不存在!!!
fi
cp -r $SERVICE_START_PATH$JAR_NAME $BACK_DATA_PATH$BACK_DATE_NAME
echo "*********Steps 1 备份历史文件 end! *************************"
echo "*********Steps 2 开始停止服务 *******************************"
pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
fi
echo "*********Steps 2 停止服务成功! ******************************"
echo "*********Steps 3 移动文件到启动目录 start! *******************"
cd $SERVICE_UPLOAD_PATH || exit
if [ -f "$JAR_NAME" ]; then
echo SERVICE_UPLOAD_PATH目录文件$JAR_NAME存在!
else
echo SERVICE_UPLOAD_PATH目录文件$JAR_NAME不存在!!!
fi
mv $SERVICE_UPLOAD_PATH$JAR_NAME $SERVICE_START_PATH$JAR_NAME
echo "*********Steps 3 移动文件到启动目录成功! ********************"
cd $SERVICE_START_PATH || exit
echo 切换到SERVICE_START_PATH目录!
echo "*********Steps 4 启动服务 ************************************"
echo "*********Steps 4-1 正常启动服务! ****************************"
echo "*********Steps 5 部署信息展示 start! *************************"
echo 公司名称:$COMPANY_NAME
echo "**************************************************************"
echo 系统名称:$SYSTEM_NAME
echo "**************************************************************"
echo Jar包名称:$JAR_NAME
echo "**************************************************************"
echo 上传目录:$SERVICE_UPLOAD_PATH
echo "**************************************************************"
echo 部署路径:$SERVICE_START_PATH
echo "**************************************************************"
echo 备份目录:$BACK_PATH
echo "*********************************************"
echo 控制台输出目录:$OUT_PATH
echo "**************************************************************"
echo 控制台输出:tail -f $OUT_DATA
echo "*********编辑人:XXX****************************************"
echo "*********Steps 0 部署信息展示 end! **************************"
nohup java -jar $JAR_NAME > $OUT_DATA 2>&1 &
tail -f $OUT_DATA
echo "*********Steps 4-1 启动服务完成! *****************************"
2、前端脚本
脚本功能:
1、备份
2、替换
3、日志输出。
说明
1.适合上传慢的系统。
2.上传文件夹和静态文件夹分开
压缩包版本
#!/bin/bash
echo "*********Steps 0 脚本开始 ************************************"
# 上传路径
DATA_UPLOAD_PATH="/home/uploadData/"
# 静态文件存放路径
NGINX_HTML_PATH="/usr/local/today/package/"
# 日志文件存放路径
NGINX_LOG_PATH="/usr/local/nginx/logs/"
# 公司名称
COMPANY_NAME="XXXX有限公司"
# 系统名称
SERVER_NAME="XXX管理平台"
# 包名称
DATA_NAME="dist"
# zip包名称
DATA_ZIP_NAME="dist.zip"
# 日志名称
LOG_NAME="access.log"
# 备份路径
BACK_PATH=$NGINX_HTML_PATH"back/"
# shellcheck disable=SC2027
BACK_DATA_PATH=$NGINX_HTML_PATH"back/"$DATA_NAME"_"
NGINX_LOG_PATH_DATA=$NGINX_LOG_PATH$LOG_NAME
BACK_DATE_NAME=$(date +%Y%m%d%H%M%S)
echo "*********Steps 1 备份历史文件 start! ************************"
cd $NGINX_HTML_PATH || exit
if [[ -d "$DATA_NAME" ]]; then
echo NGINX_HTML_PATH目录文件$DATA_NAME文件存在!
else
echo NGINX_HTML_PATH目录文件$DATA_NAME文件不存在!!!
fi
cp -r $NGINX_HTML_PATH$DATA_NAME $BACK_DATA_PATH$BACK_DATE_NAME
echo "*********Steps 1 备份历史文件 end! *************************"
cd $DATA_UPLOAD_PATH || exit
echo "*********Steps 2 解压ZIP文件 start! *******************"
if [[ -f "$DATA_ZIP_NAME" ]]; then
echo DATA_UPLOAD_PATH目录文件$DATA_ZIP_NAME文件存在!
unzip $DATA_ZIP_NAME
else
echo DATA_UPLOAD_PATH目录文件$DATA_ZIP_NAME文件不存在!!!
fi
echo "*********Steps 2 解压ZIP文件 end! *******************"
echo "*********Steps 3 同步文件到静态目录 start! *******************"
if [[ -d "$DATA_NAME" ]]; then
echo DATA_UPLOAD_PATH目录文件$DATA_NAME文件存在!
else
echo DATA_UPLOAD_PATH目录文件$DATA_NAME文件不存在!!!
fi
rsync -a $DATA_UPLOAD_PATH$DATA_NAME $NGINX_HTML_PATH
echo "*********Steps 3 同步文件到静态目录成功! ********************"
echo "*********Steps 4 删除上传文件 start! **********************"
rm -rf $DATA_UPLOAD_PATH$DATA_NAME
rm -rf $DATA_UPLOAD_PATH$DATA_ZIP_NAME
echo "*********Steps 4 删除上传文件成功! ****************************"
echo "*********Steps 5 部署信息展示 start! *************************"
echo 公司名称:$COMPANY_NAME
echo "**************************************************************"
echo 系统名称:$SERVER_NAME
echo "**************************************************************"
echo 上传目录:$DATA_UPLOAD_PATH
echo "**************************************************************"
echo 部署路径:$NGINX_HTML_PATH
echo "**************************************************************"
echo 备份目录:$BACK_PATH
echo "**************************************************************"
echo 日志输出:tail -f $NGINX_LOG_PATH_DATA
echo "*********编辑人:XXX****************************************"
echo "*********Steps 6 部署信息展示 end! **************************"
tail -f $NGINX_LOG_PATH_DATA
文件夹版本
#!/bin/bash
echo "*********Steps 0 脚本开始 ************************************"
# 上传路径
DATA_UPLOAD_PATH="/home/uploadData/"
# 静态文件存放路径
NGINX_HTML_PATH="/usr/local/today/package/"
# 日志文件存放路径
NGINX_LOG_PATH="/usr/local/nginx/logs/"
# 公司名称
COMPANY_NAME="XXXX有限公司"
# 系统名称
SERVER_NAME="XXXX系统"
# 包名称
DATA_NAME="dist"
# 日志名称
LOG_NAME="access.log"
# 备份路径
BACK_PATH=$NGINX_HTML_PATH"back/"
# shellcheck disable=SC2027
BACK_DATA_PATH=$NGINX_HTML_PATH"back/"$DATA_NAME"_"
NGINX_LOG_PATH_DATA=$NGINX_LOG_PATH$LOG_NAME
BACK_DATE_NAME=$(date +%Y%m%d%H%M%S)
echo "*********Steps 1 备份历史文件 start! ************************"
cd $NGINX_HTML_PATH || exit
if [[ -d "$DATA_NAME" ]]; then
echo NGINX_HTML_PATH目录文件$DATA_NAME文件存在!
else
echo NGINX_HTML_PATH目录文件$DATA_NAME文件不存在!!!
fi
cp -r $NGINX_HTML_PATH$DATA_NAME $BACK_DATA_PATH$BACK_DATE_NAME
echo "*********Steps 1 备份历史文件 end! *************************"
echo "*********Steps 2 同步文件到静态目录 start! *******************"
cd $DATA_UPLOAD_PATH || exit
if [[ -d "$DATA_NAME" ]]; then
echo DATA_UPLOAD_PATH目录文件$DATA_NAME文件存在!
else
echo DATA_UPLOAD_PATH目录文件$DATA_NAME文件不存在!!!
fi
rsync -a $DATA_UPLOAD_PATH$DATA_NAME $NGINX_HTML_PATH
echo "*********Steps 2 同步文件到静态目录成功! ********************"
echo "*********Steps 3 删除上传文件 start! **********************"
rm -rf $DATA_UPLOAD_PATH$DATA_NAME
echo "*********Steps 3 删除上传文件成功! ****************************"
echo "*********Steps 4 部署信息展示 start! *************************"
echo 公司名称:$COMPANY_NAME
echo "**************************************************************"
echo 系统名称:$SERVER_NAME
echo "**************************************************************"
echo 上传目录:$DATA_UPLOAD_PATH
echo "**************************************************************"
echo 部署路径:$NGINX_HTML_PATH
echo "**************************************************************"
echo 备份目录:$BACK_PATH
echo "**************************************************************"
echo 日志输出:tail -f $NGINX_LOG_PATH_DATA
echo "*********编辑人:XXX****************************************"
echo "*********Steps 4 部署信息展示 end! **************************"
tail -f $NGINX_LOG_PATH_DATA