Linux自动化部署脚本

1:最近项目部署比较频繁终于熬不住了

就有下面的这东西

powershell 复制代码
#!/bin/sh
#报错停止运行
set -e
# 获取tomcat的PID
TOMCAT_PID=$(ps -ef | grep tomcat | grep -v 'grep' | awk '{print $2}')
# tomcat的启动文件位置
START_TOMCAT=/mnt/tomcat/bin/startup.sh
# 项目文件部署位置
PROJECT=/mnt
# 前端的文件位置
WEB=www
# 老的
WEB_PROJECT_O=$PROJECT/$WEB
# 新的
WEB_PROJECT_N=$PROJECT/dist
# 指定要判断前端文件是否已上传
if [ -d "$WEB_PROJECT_N" ]; then
    echo "部署文件已经存在...准备就绪"
else
    echo "请先上传前端文件(dist)到/mnt/下面!"
    exit 0
fi
# 后端的文件位置
SERVER=amb-server
# 老的
JAVA_PROJECT_O=$PROJECT/$SERVER
# 新的
JAVA_PROJECT_N=$PROJECT/tomcat/webapps/$SERVER
# 项目文件备份位置
PROJECT_B=/mnt/Backup
CURRENT_DATE=$(date +%Y%m%d)
echo $CURRENT_DATE
echo "备份前端项目..."
cd $PROJECT_B
#获取文件数用于命名
wFileNum=$(ls -l | grep $WEB$CURRENT_DATE | wc -l)
wFileNum=`expr $wFileNum + 1`
mv $WEB_PROJECT_O  $PROJECT_B/$WEB$CURRENT_DATE-$wFileNum
echo "备份前端项目($PROJECT_B/$WEB$CURRENT_DATE-$wFileNum)...成功"
sleep 3
mv $WEB_PROJECT_N $WEB_PROJECT_O
cd $PROJECT_B
#获取文件数用于命名
sFileNum=$(ls -l | grep $SERVER$CURRENT_DATE | wc -l)
sFileNum=`expr $sFileNum + 1`
echo "备份后端项目..."
mv $JAVA_PROJECT_O  $PROJECT_B/$SERVER$CURRENT_DATE-$sFileNum
echo "备份后端项目($PROJECT_B/$SERVER$CURRENT_DATE-$sFileNum)...成功"
sleep 3
mv $JAVA_PROJECT_N $PROJECT/
echo "项目重启..."
kill -9 $TOMCAT_PID
# 5秒后重启tomcat
sleep 5
$START_TOMCAT
sleep 20
echo "项目已成功部署!"

2:目前还不是完全自动化需要自己手动打包到指定位置

相关推荐
大耳朵-小飞象4 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技5 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
微硬创新5 小时前
耐达讯自动化 CC-Link IE 转 PROFINET网关在污水厂智能化升级实战
人工智能·物联网·网络协议·自动化·信息与通信
HLC++5 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室7 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
生活爱好者!8 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
groundhappy9 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
尽兴-9 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕10 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon10 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化