邻邻商城 升级
# 邻邻商城 升级
本脚本都是不停服务升级降级
# 手动升级
脚本已升级,新的脚本简单快捷还不容易出错,请使用一键升级
第一步
将最新的jar包上传到服务器升级目录下,如:/usr/local/upgrade
第二步
创建Shell文件,并给与执行权限。
#!/bin/sh
#=================================================================
# Info : 系统升级
#
# Author : 长沙蓝灵鸟科技有限公司 | Yudao | 1010331559@qq.com
# Param : env 要切换的环境, mall:商城平台
#-----------------------------------------------------------------
#nginx重载
function nginxReload()
{
cd $nginx_bin
./nginx -s reload
echo "切换完成"
}
#环境
env=$1
#配置文件路径
nginx_path=/usr
#nginx配置文件路径 按实际路径填写
nginx_conf=/etc/nginx/conf.d/lln.kim.conf
nginx_bin=${nginx_path}/sbin
if [ -z "$env" ]
then
echo "env为空"
exit 0
fi
#商城平台
if [ "$env" = "mall" ]
then
echo "要切换的环境 商城平台..."
content=`grep "http://127.0.0.1:8081" $nginx_conf`
if [ -z "$content" ]
then
content=`grep "http://127.0.0.1:8082" $nginx_conf`
if [ -z "$content" ]
then
echo "商城平台没有配置nginx http端口"
exit 0
else
sed -i "s/http:\/\/127.0.0.1:8082/http:\/\/127.0.0.1:8081/g" ${nginx_conf}
echo "商城平台从 mall2(8280) 切换到 mall1(8180)"
nginxReload
exit 0
fi
else
sed -i "s/http:\/\/127.0.0.1:8081/http:\/\/127.0.0.1:8082/g" ${nginx_conf}
echo "商城平台从 mall1(8081) 切换到 mall2(8082)"
nginxReload
exit 0
fi
fi
echo "env值为空"
chmod +x upgrade.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
第三步
启动升级包:
1.指定升级包文件路径
2.指定端口 端口在 8081
和 8082
之间切换
nohup java -jar lln-smart-mall-01.jar --server.port=8081 >info.log 2>& 1 &
# or
nohup java -jar lln-smart-mall-02.jar --server.port=8082 >info.log 2>& 1 &
1
2
3
2
3
执行 upgrade.sh mall 如下代码
sh upgrade.sh mall
1
sh upgrade.sh mall 可以来回切换端口,所以如果升级包有问题能够马上切回到未升级之前,
最后如果没测试升级后的没有问题了则可以将老的服务停掉
# 一键升级
一键升级脚本源码在 lln-mall/docs
目录下
上面的升级流程虽然简单 但是略显繁琐(需要查看当前端口号、指定端口号启动、启动完成后需要切换端口、测试完成后要查进程停服务)
使用升级版脚本 自动查找端口号、自动启动服务、启动完成后自动切换到新的服务(省心且不容易出错)
- 注意打包时必须要换版本号
- 本系统版本号规则:v202112.1.19 = v年月.实际版本号 (可自定义)
- 换版本号的方式:
- mvn clean package
-Dsystem.version=v202112.1.19
- mvn clean package
- mvn clean package
- 方式2:需要修改lln-mall/pom.xml文件中的变量
<system.version>v202112.1.19</system.version>
# 启动服务
# 启动对应版本号的服务 此命令也可用来切换服务
./upgrade.sh start v202112.1.19
1
2
2
# 升级完成
升级测试完成后执行此命令,才会将老的服务停掉,
如果有问题使用:./upgrade.sh switch
切换原来的服务,或者指定老的版本号 ./upgrade.sh start v202112.1.18
./upgrade.sh finish
1
# 查看当前启用的系统版本号信息
./upgrade.sh version
# or
./upgrade.sh info
1
2
3
2
3
# 切换服务
#切换服务版本,可以多次切换
./upgrade.sh switch
1
2
2
# 停用服务
# 注意:此命令不会进行确认直接停掉
./upgrade.sh stop
1
2
2
# 查看启动服务记录日志
tail upgrade.log