Shell脚本部署Java应用
1. 根据PID获取进程信息
1 | !/bin/bash |
若执行出现权限不够,为shell文件增加执行权限:
chmod +x test.sh
2. 使用Shell脚本部署Jar包
将跳板机上(或本地服务器)的jar包文件拷贝到发布服务器,然后通过发布服务器上的脚本实现旧jar包的备份,新jar包的启动。
- 实现部署的操作:拷贝jar包到服务器 -> 备份旧服务jar包 -> 启动新服务jar包
- 使用命令:
./begin.sh demo-0.0.1-SNAPSHOT.jar
- 跳板机(本地服务器)的脚本begin.sh
1 | !/bin/bash |
通过上面的跳板机上的代码,我们知道跳板机最终会调用发布服务器上/usr/local/test/demo-deploy.sh
这个shell脚本命令。
- 发布服务器脚本demo-deploy.sh
1 | !/usr/bin/env bash |
- 演示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16跳板机
[cmuser@localhost test]$ ./begin.sh demo-0.0.1-SNAPSHOT.jar
开始拷贝jar文件【demo-0.0.1-SNAPSHOT.jar】到192.168.2.100
cmuser@192.168.2.100's password:
demo-0.0.1-SNAPSHOT.jar 100% 20MB 11.2MB/s 00:01
文件传输结束,准备启动192.168.2.100的部署脚本
cmuser@192.168.2.100's password:
服务器开始部署服务
新的jar为:demo-0.0.1-SNAPSHOT.jar
当前运行的旧的jar包为:demo-0.0.1-SNAPSHOT.jar
2581
kill old process start ...
killed 2581
kill old process end
.bak-20201117
服务启动查看进程:
1 | 发布服务器(部署前pid:2581) |