Java部署脚本&重启备份检查&配置环境
type
status
date
slug
summary
tags
category
icon
password
契机命令编写步骤配置环境变量主程序辅助函数动态设置JVM参数根据jar包获取正在运行的pid列表停止服务启动服务启动完成检查备份环境变量配置配置~/.bash_profile配置自动补全效果备份重启最终部署脚本写到最后
契机
微服务jar包越来越多,每次手动上线的时候都要运行一大堆命令,并且每个人备份的jar包名称目录都不一样。故写了一个脚本规定死流程,并且把脚本配置到环境变量做自动补全。
固定流程:deploy bakup xx.jar —> deploy restart xx.jar
命令编写步骤
我会把每一步编写的用途都罗列出来,不想看的可以直接滑到最后复制整个脚本
配置环境变量
这里配置基础的java运行环境变量,包括可以把JVM运行参数也放在这里,到我项目里面的JVM参数是变动的,下面会提到。并且声明脚本要用到变量。
主程序
首先定义程序入口,运行welcome欢迎函数,并且运行检查当前工作目录函数,因为这个脚本会在配置到环境变量,防止程序运行报错。
辅助函数
提示函数,检查输入参数,welcome,check_directory等,都比较简单
动态设置JVM参数
根据env环境变量和jar包的名称动态设置JVM的堆内存
根据jar包获取正在运行的pid列表
就是ps aux | grep 服务名来获取的正在运行的pid,然后通过awk来输出具体的某个pid
停止服务
使用kill -15来杀程序,如果超过60s,就直接kill -9
启动服务
这里无非就是组装最终运行的部署语句
启动完成检查
由于我的java项目一般会把info级别的日志文件放在同级目录,通过检测关键字来实现启动完成监控
备份
自动备份到指定目录,并且做到限制备份数目,自动清除等效果
环境变量配置
配置~/.bash_profile
配置自动补全
效果
备份
重启
最终部署脚本
写到最后
是在往前走就好
bothsavage.github.io
Last update: 2024-01-24