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

自动化部署脚本

说明:这个脚本主要是我部署java项目时:解压war包、停止服务、启动服务、查看日志、日志分割等常用命令,给他写成shell脚本了。

使用方法:

一般服务器都自带bash,该shell脚本通过bash执行。所以只需要把该脚本拉入到服务器,给脚本执行权限:

执行,输入需要的数字即可:

脚本代码内容如下:

#!/bin/bash# 定义颜色代码变量
RED='\033[1;31m'    # 红色-用于强调操作提示
GREEN='\033[1;32m'  # 绿色-用于成功提示
BLUE='\033[1;34m'   # 蓝色-用于菜单标题
CYAN='\033[1;36m'   # 青色-用于步骤说明
NC='\033[0m'        # 重置颜色# 全局变量定义
TW_HOME="/home/hcf/TongWeb7.0"  # TongWeb主目录
APP_HOME="/home/hcf/APP"        # 应用部署目录
LOG_FILE="${TW_HOME}/logs/server.log" # 日志文件路径# 显示彩色标题函数
show_header() {clearecho -e "${BLUE}#***************XX项目的TongWeb 服务管理脚本 (端口:9060) ***************#${NC}"
}# 显示菜单函数
show_menu() {echo -e "${CYAN}"echo "0. 检查TongWeb状态"echo "1. 启动TongWeb服务"echo "2. 停止TongWeb服务"echo "3. 重启TongWeb服务"echo "4. 查看实时日志"echo "44. 查看最近1000条日志"echo "5. 编辑配置文件"echo "6. 日志文件分割"echo "7. 进入APP目录"echo "8. 删除hcf应用"echo "9. 解压hcf.war包"echo -e "${NC}"echo -e "${GREEN}请输入操作编号: ${NC}\c"
}# 获取TongWeb进程ID
get_pid() {ps -ef | grep tongweb | grep "${TW_HOME}" | grep -v auto | awk '{print $2}'
}# 主程序开始
show_header
show_menuread choice             #执行脚本后,输入的值
pid=$(get_pid)          # 获取当前启动的tongweb进程ID
timestamp=$(date +%Y%m%d%H%M) # 时间戳用于日志分割case $choice in0) # 检查服务状态if [ -n "$pid" ]; thenecho -e "${GREEN}✔ TongWeb正在运行 (PID: $pid)${NC}"elseecho -e "${RED}✖ TongWeb未运行${NC}"fi;;1) # 启动服务echo -e "${CYAN}▶ 正在启动TongWeb...${NC}"cd "${TW_HOME}/bin" || exit 1./startservernohup.shecho -e "${GREEN}✔ 已启动,开始跟踪日志...${NC}"tail -f "$LOG_FILE";;2) # 停止服务echo -e "${CYAN}■ 正在停止TongWeb...${NC}"if [ -n "$pid" ]; then"${TW_HOME}/bin/stopserver.sh"echo -e "${GREEN}✔ 已发送停止指令${NC}"elseecho -e "${RED}✖ 服务未运行,无需停止${NC}"fi;;3) # 重启服务echo -e "${CYAN}↻ 正在重启TongWeb...${NC}"[ -n "$pid" ] && kill -9 "$pid"cd "${TW_HOME}/bin" || exit 1./startservernohup.sh;;4) # 实时日志echo -e "${CYAN}📜 进入实时日志模式 (Ctrl+C退出)...${NC}"tail -f "$LOG_FILE";;44) # 查看最近日志tail -n 1000 "$LOG_FILE"echo -e "${CYAN}📄 最近1000条日志内容如上:${NC}";;5) # 编辑配置vi "${APP_HOME}/hcf/WEB-INF/classes/application-prod.yml";;6) # 日志分割echo -e "${CYAN}✂ 正在分割日志...${NC}"cp "$LOG_FILE" "${TW_HOME}/logs/server_${timestamp}.log"> "$LOG_FILE"echo -e "${GREEN}✔ 日志已归档并清空当前日志${NC}";;7) # 进入APP目录cd "$APP_HOME" || exit 1echo -e "${GREEN}✔ 已进入应用目录: $(pwd)${NC}";;8) # 删除应用rm -rf "${APP_HOME}/hcf" "${APP_HOME}/hcf.war"echo -e "${GREEN}✔ 已删除hcf应用文件${NC}";;9) # 解压war包cd "$APP_HOME" || exit 1unzip -d hcf hcf.warecho -e "${GREEN}✔ 解压完成,文件保存在hcf目录${NC}";;*)echo -e "${RED}⚠ 无效的输入,请重新运行脚本选择有效编号${NC}";;
esac

http://www.dtcms.com/a/515536.html

相关文章:

  • 上海专业网站建设方案wordpress 送女友
  • 人与狗做的电影网站网页搭建服务
  • 前端 数据的转换
  • React useCallback介绍(用来缓存函数的引用,避免每次渲染都重新创建函数)主要用于性能优化
  • VUE工程化开发模式
  • 海口澄迈县建设局网站杭州萧山网络
  • 前端低代码开发工具的崛起与实践经验分享,从效率到可控性的平衡
  • 二、redis集群部署(3主3从)
  • Vue 生命周期详解
  • vue3调用ant-design-vue组件库的a-table组件
  • 手机网站开发软件南昌网站外包
  • 以图搜图随州网站seo诊断
  • java设计模式六、装饰器模式
  • 微信小程序隐藏滚动条多种方法教程
  • AWS DMS实现MySQL到Redshift的CDC增量数据复制方案
  • 王者重名生成查询抖音快手微信小程序看广告流量主开源
  • 旅游网站建设1000字软文范例800字
  • 网站搜索引擎友好性最近三天发生的重要新闻
  • Flink的checkpoint interval与mini-batch什么区别?
  • CADSoftTools发布两款重要更新:CAD VCL Multiplatform 16.2 与 CAD .NET 16全新发布
  • 【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
  • 触摸未来2025-10-22:语序之困
  • 【滑动窗口与双指针】【定长滑窗】—1456. 定长子串中元音的最大数目
  • Flink 实验性特性把“已预分区”的 DataStream 重新解释为 KeyedStream
  • ADB -> 常用文件操作的组合命令
  • 网格系统网站济南网约车公司
  • 社区网站的推广方案手机写wordpress博客
  • 原子性、可见性和指令重排问题的根源
  • 什么是测试覆盖率?如何衡量?
  • 《宝可梦传说Z-A》下载 整合龙神Ryuinx、eden模拟器附金手指和存档 安卓手机PC版