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

type
status
date
slug
summary
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
 
Xmrig挖矿入侵服务器排查解决SkyWalking在gateway中logback链路丢失