linux下lims部署详细步骤参考

1. 进入程序目录

将路径改成服务器上的实际路径:

bash 复制代码
cd /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service

保存当前目录:

bash 复制代码
APP_DIR=$(pwd)

检查文件是否存在:

bash 复制代码
ls -lh wuk-lims3.0.jar nf-test-3.0.0.jar start.sh stop.sh

2. 查询主包内部的 nf-test 路径

bash 复制代码
unzip -Z1 wuk-lims3.0.jar | grep 'nf-test-3.0.0.jar'

正常应该显示:

text 复制代码
BOOT-INF/lib/nf-test-3.0.0.jar

设置内部路径变量:

bash 复制代码
INNER_PATH=$(unzip -Z1 wuk-lims3.0.jar | grep 'nf-test-3.0.0.jar' | head -n 1)

确认变量:

bash 复制代码
echo "$INNER_PATH"

如果输出为空,不要继续替换。

3. 停止服务

bash 复制代码
sh stop.sh

等待几秒:

bash 复制代码
sleep 5

检查进程是否停止:

bash 复制代码
pgrep -af 'wuk-lims3.0.jar'

没有输出表示已经停止。

4. 备份原来的主程序包

使用时间作为备份文件名:

bash 复制代码
BACKUP="wuk-lims3.0.jar.backup_$(date +%Y%m%d_%H%M%S)"
cp -a wuk-lims3.0.jar "$BACKUP"

检查备份:

bash 复制代码
ls -lh "$BACKUP"

例如生成:

text 复制代码
wuk-lims3.0.jar.backup_20260807_110500

5. 创建待修改的临时主包

不要直接修改正式包,先复制一份:

bash 复制代码
cp -a wuk-lims3.0.jar wuk-lims3.0.jar.new

检查:

bash 复制代码
ls -lh wuk-lims3.0.jar wuk-lims3.0.jar.new

6. 创建临时目录

bash 复制代码
TMP_DIR=$(mktemp -d)

创建主包内部相同的目录结构:

bash 复制代码
mkdir -p "$TMP_DIR/$(dirname "$INNER_PATH")"

把新的 nf-test-3.0.0.jar 复制进去:

bash 复制代码
cp -a nf-test-3.0.0.jar "$TMP_DIR/$INNER_PATH"

检查:

bash 复制代码
ls -lh "$TMP_DIR/$INNER_PATH"

7. 删除主包内部旧的 nf-test 包

bash 复制代码
zip -d "$APP_DIR/wuk-lims3.0.jar.new" "$INNER_PATH"

删除后确认旧包已经不存在:

bash 复制代码
unzip -Z1 "$APP_DIR/wuk-lims3.0.jar.new" | grep 'nf-test-3.0.0.jar'

此时应该没有输出。

8. 添加新的 nf-test 包

必须使用 -0,保证内部依赖包以"不压缩"方式存储:

bash 复制代码
cd "$TMP_DIR"
zip -0 "$APP_DIR/wuk-lims3.0.jar.new" "$INNER_PATH"
cd "$APP_DIR"

确认新包已经加入:

bash 复制代码
unzip -Z1 wuk-lims3.0.jar.new | grep 'nf-test-3.0.0.jar'

应该输出:

text 复制代码
BOOT-INF/lib/nf-test-3.0.0.jar

9. 检查主包是否损坏

bash 复制代码
unzip -t wuk-lims3.0.jar.new

最后应该看到类似:

text 复制代码
No errors detected in compressed data

检查内部包是否为 Stored

bash 复制代码
unzip -lv wuk-lims3.0.jar.new | grep 'nf-test-3.0.0.jar'

输出中应该包含:

text 复制代码
Stored

10. 对比新包和内部包的 MD5

计算外部新包 MD5:

bash 复制代码
md5sum nf-test-3.0.0.jar

计算替换后主包内部的 MD5:

bash 复制代码
unzip -p wuk-lims3.0.jar.new "$INNER_PATH" | md5sum

两个 MD5 值一致,表示内部包替换成功。

也可以直接执行:

bash 复制代码
NEW_MD5=$(md5sum nf-test-3.0.0.jar | awk '{print $1}')
INNER_MD5=$(unzip -p wuk-lims3.0.jar.new "$INNER_PATH" | md5sum | awk '{print $1}')

echo "外部新包:$NEW_MD5"
echo "内部新包:$INNER_MD5"

[ "$NEW_MD5" = "$INNER_MD5" ] && echo "校验成功" || echo "校验失败"

11. 正式替换主程序包

确认前面的检查全部通过后执行:

bash 复制代码
mv -f wuk-lims3.0.jar.new wuk-lims3.0.jar

清理临时目录:

bash 复制代码
rm -rf "$TMP_DIR"

检查正式包:

bash 复制代码
ls -lh wuk-lims3.0.jar "$BACKUP"

12. 启动服务

bash 复制代码
sh start.sh

等待启动:

bash 复制代码
sleep 10

检查进程:

bash 复制代码
pgrep -af 'wuk-lims3.0.jar'

检查端口,例如程序端口是 9000

bash 复制代码
ss -lntp | grep ':9000'

查看最近日志:

bash 复制代码
tail -n 200 server.log

持续查看日志:

bash 复制代码
tail -f server.log

Ctrl+C 退出日志查看。

一套连续执行的核心命令

确认程序目录正确后,可以依次执行:

bash 复制代码
cd /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service

APP_DIR=$(pwd)
INNER_PATH=$(unzip -Z1 wuk-lims3.0.jar | grep 'nf-test-3.0.0.jar' | head -n 1)

echo "内部包路径:$INNER_PATH"

test -f wuk-lims3.0.jar || { echo "主包不存在"; exit 1; }
test -f nf-test-3.0.0.jar || { echo "新 nf-test 包不存在"; exit 1; }
test -n "$INNER_PATH" || { echo "主包内没有找到 nf-test 包"; exit 1; }

sh stop.sh
sleep 5

pgrep -af 'wuk-lims3.0.jar'

BACKUP="wuk-lims3.0.jar.backup_$(date +%Y%m%d_%H%M%S)"
cp -a wuk-lims3.0.jar "$BACKUP"
cp -a wuk-lims3.0.jar wuk-lims3.0.jar.new

TMP_DIR=$(mktemp -d)
mkdir -p "$TMP_DIR/$(dirname "$INNER_PATH")"
cp -a nf-test-3.0.0.jar "$TMP_DIR/$INNER_PATH"

zip -d "$APP_DIR/wuk-lims3.0.jar.new" "$INNER_PATH"

cd "$TMP_DIR"
zip -0 "$APP_DIR/wuk-lims3.0.jar.new" "$INNER_PATH"
cd "$APP_DIR"

unzip -t wuk-lims3.0.jar.new

NEW_MD5=$(md5sum nf-test-3.0.0.jar | awk '{print $1}')
INNER_MD5=$(unzip -p wuk-lims3.0.jar.new "$INNER_PATH" | md5sum | awk '{print $1}')

echo "外部新包:$NEW_MD5"
echo "内部新包:$INNER_MD5"

if [ "$NEW_MD5" != "$INNER_MD5" ]; then
    echo "MD5 校验失败,停止替换"
    exit 1
fi

mv -f wuk-lims3.0.jar.new wuk-lims3.0.jar
rm -rf "$TMP_DIR"

sh start.sh
sleep 10

pgrep -af 'wuk-lims3.0.jar'
tail -n 200 server.log

启动失败时回滚

停止服务:

bash 复制代码
sh stop.sh

查看备份:

bash 复制代码
ls -lht wuk-lims3.0.jar.backup_*

自动选择最新备份:

bash 复制代码
LATEST_BACKUP=$(ls -1t wuk-lims3.0.jar.backup_* | head -n 1)
echo "$LATEST_BACKUP"

恢复:

bash 复制代码
cp -a "$LATEST_BACKUP" wuk-lims3.0.jar

重新启动:

bash 复制代码
sh start.sh
sleep 10
pgrep -af 'wuk-lims3.0.jar'
tail -n 200 server.log
相关推荐
奇特認2 小时前
数据库MySQL 1.安装环境部署
linux·运维·服务器
小小龙学IT3 小时前
Day 26-27 项目实战:从零构建一个高并发聊天室(epoll + 线程池)
linux·服务器·c语言·开发语言·网络
风静如云3 小时前
Yocto:关于Layer
linux
无足鸟ICT3 小时前
【RHCA+】for循环
linux
雨声不在3 小时前
vm.mmap_rnd_bits 引发 ASAN CPU 100% 问题解析
linux·服务器·网络
进击切图仔4 小时前
在 windows 和 ubuntu 中配置 host 文件
linux·windows·ubuntu
郭涤生4 小时前
C++ 零拷贝(Zero-Copy)
linux·开发语言·c++
weixin_445476684 小时前
LIMS 3.0 测试环境部署过程记录
linux·状态模式
The Chosen One9854 小时前
【操作系统】操作系统引导、虚拟机、进程通信、信号
linux·运维·服务器·操作系统·虚拟机·信号