当前位置: 首页 > news >正文

Linux自动化部署脚本

1:最近项目部署比较频繁终于熬不住了
就有下面的这东西

#!/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" ]; thenecho "部署文件已经存在...准备就绪"
elseecho "请先上传前端文件(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:目前还不是完全自动化需要自己手动打包到指定位置

http://www.lryc.cn/news/276726.html

相关文章:

  • lvgl修改图片大小上限
  • 阻止持久性攻击改善网络安全
  • MFC与Qt多个控件响应统一响应消息处理
  • Camunda rest api鉴权
  • 【PostgreSQL】在DBeaver中实现序列、函数、视图、触发器设计
  • PyQt5-小总结
  • vue父组件给子组件传值,子组件不渲染的原因及解决方法
  • 【数据库】MySQL锁
  • mongodb学习篇
  • kubernetes存储类迁移-备份恢复
  • python智能手机芯片
  • 混淆技术概论
  • pytest安装失败,报错Could not find a version that satisfies the requirement pytest
  • 使用 Maven 的 dependencyManagement 管理项目依赖项
  • 三英战吕布web3游戏项目启动全流程
  • TS中的类
  • 玩转硬件之玩改朗逸中控设备
  • 根据MySql的表名,自动生成实体类,模仿ORM框架
  • Mac上安装tensorflow介绍留存
  • 【赠书第16期】码上行动:用ChatGPT学会Python编程
  • LeetCode 每日一题 2024/1/1-2024/1/7
  • 7+单细胞+空转+实验验证,如何根据内容开展相关经验给你启发
  • Verifiable Credentials可验证证书 2023 终极指南
  • R语言【sp】——SpatialPoints():创建类SpatialPoints或SpatialPointsDataFrame的对象
  • 【Verilog】期末复习——简要说明仿真时阻塞赋值和非阻塞赋值的区别。always语句和initial语句的关键区别是什么?能否相互嵌套?
  • 分享一个idea插件MyBatisX的Bug
  • Linux网络
  • Copilot 插件的使用介绍:如何快速上手
  • kubesphere和k8s的使用分享
  • macos m1如何安装指定版本的redis