Java部署脚本&重启备份检查&配置环境

type
Post
status
Published
date
Jan 24, 2024
slug
240124-deploy
summary
微服务jar包越来越多,每次手动上线的时候都要运行一大堆命令,并且每个人备份的jar包名称目录都不一样。故写了一个脚本规定死流程,并且把脚本配置到环境变量做自动补全。
tags
推荐
工具
自动化
微服务
category
技术分享
icon
password

契机

微服务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

配置自动补全

效果

备份

notion image

重启

notion image
 
 

最终部署脚本

写到最后

notion image
是在往前走就好 bothsavage.github.io
 
notion image
 
Prev
Xmrig挖矿入侵服务器排查
Next
解决SkyWalking在gateway中logback链路丢失
Loading...
Article List
talk is cheap
技术分享
万里长征
心情随笔
知行合一