提交 b263716f authored 作者: 陈泽健's avatar 陈泽健

feat(deploy): 拆分主脚本实现模块化文件操作功能

- 创建auto_file_upload_check.sh脚本,包含File_detection_java和check_files函数
- 添加check_files_upload主入口函数,负责初始化变量和调用文件检测部署流程
- 在new_auto.sh中导入auto_file_upload_check.sh并调用check_files_upload函数
- 实现环境变量传递server_ip参数和返回值处理机制
- 添加详细的日志记录和错误处理功能
- 创建需求文档和计划执行文档规范模块化拆分流程
上级 470c849b
# 主脚本模块化拆分文件部署
## 代码路径
- 需调用代码路径:[自动化部署脚本/x86架构/新统一平台/auto_file_upload_check.sh]
- 主脚本:[自动化部署脚本/x86架构/新统一平台/new_auto.sh]
## 功能需求
### 功能目标
**目标:** 当前主脚本代码量过于庞大,不利于维护,现需将主脚本中的check_files和File_detection_java函数独立出来,通过在主脚本中调用auto_file_upload_check.sh。
### 需求描述
#### 调用逻辑
- 调用方式:
- 在主脚本中source导入auto_file_upload_check.sh,然后调用check_files_upload函数
- 使用环境变量传递server_ip参数
```bash
# 在主脚本中导入文件检查脚本(已有source导入,无需重复)
# source "$SCRIPT_DIR/auto_file_upload_check.sh"
# 调用文件检查函数,server_ip由主脚本传入
check_files_upload
```
- 接收脚本执行的返回参数,并使用log函数打印日志
- 0:文件上传成功,使用`log "INFO"`打印日志
- 1:文件上传失败,使用`log "ERROR"`打印错误日志,使用`return 1`退出当前函数部署操作
- 执行时机:
- 在主脚本中add_user之后执行
#### 脚本设计要求
- 主入口函数:
-`auto_file_upload_check.sh`中增加主入口函数`check_files_upload()`
- 主入口函数负责:
- 解析`server_ip`环境变量
- 根据参数调用函数
- 返回部署结果
- log函数依赖:
- 脚本中的log函数与主脚本保持一致
- 在主脚本中先source导入`auto_file_upload_check.sh`,再调用`check_files_upload`函数
- 变量初始化:
- 在主入口函数中初始化以下变量:
- `sudoset`:sudo命令前缀(根据用户权限判断)
- `SUDO`:sudo命令(兼容不同函数中的变量名)
- `server_ip`:服务器IP地址(由主脚本传入)
## 规范文档
- 代码规范: `Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
- 问题总结: `Docs/PRD/01规范文档/_PRD_问题总结_记录文档.md`
- 方法总结: `Docs/PRD/01规范文档/_PRD_方法总结_记录文档.md`
- 文档规范: `Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
- 测试规范: `Docs/PRD/01规范文档/_PRD_规范文档_测试规范.md`
---
\ No newline at end of file
# 主脚本模块化拆分文件操作计划执行文档
## 需求来源
- 需求文档:`Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_主脚本模块化拆分文件操作_需求文档.md`
---
## 实现计划
### 1. 代码结构设计
```bash
auto_file_upload_check.sh
├── File_detection_java() # 已有函数(检测部署文件是否完整)
├── check_files() # 已有函数(检查并部署data目录)
└── check_files_upload() # 新增主入口函数
├── 初始化变量(sudoset/SUDO/server_ip)
├── 调用File_detection_java()进行文件检测
├── 调用check_files()进行文件部署
└── 返回部署结果
```
### 2. 实现步骤
- [ ] 在auto_file_upload_check.sh末尾增加check_files_upload()主入口函数
- [ ] 实现变量初始化逻辑(sudoset/SUDO/server_ip)
- [ ] 实现函数调用逻辑(File_detection_java → check_files)
- [ ] 实现返回值处理和日志打印
- [ ] 在主脚本new_auto.sh中source导入auto_file_upload_check.sh
- [ ] 在主脚本add_user后调用check_files_upload函数
### 3. 技术要点
#### 3.1 变量初始化
```bash
# 初始化sudo相关变量
if [[ $(id -u) -ne 0 ]]; then
sudoset="sudo"
SUDO="sudo"
else
sudoset=""
SUDO=""
fi
# server_ip由主脚本传入
if [[ -z "$server_ip" ]]; then
log "WARN" "未传入服务器IP地址"
fi
```
#### 3.2 主入口函数逻辑
```bash
check_files_upload() {
log "INFO" "开始文件检查与部署流程"
# 1. 先检测部署文件是否完整
if ! File_detection_java; then
log "ERROR" "部署文件检测失败"
return 1
fi
# 2. 执行文件检查和部署
if ! check_files; then
log "ERROR" "文件部署失败"
return 1
fi
log "INFO" "文件检查与部署完成"
return 0
}
```
#### 3.3 主脚本调用方式
```bash
# 导入文件检查脚本
source "$SCRIPT_DIR/auto_file_upload_check.sh"
# 调用检查函数(server_ip由主脚本传入)
check_files_upload
```
### 4. 函数位置
- auto_file_upload_check.sh:在所有函数之后添加check_files_upload主入口
- new_auto.sh:在add_user之后添加调用
### 5. 返回值定义
| 返回值 | 含义 | 处理方式 |
|--------|------|----------|
| 0 | 文件检查和部署成功 | 继续执行 |
| 1 | 文件检查或部署失败 | log ERROR + return 1 |
### 6. 执行流程
```
add_user → check_files_upload → File_detection_java → check_files → 继续后续流程
```
---
## 代码修改
### 修改文件
1. `自动化部署脚本/x86架构/新统一平台/auto_file_upload_check.sh` - 添加主入口函数
2. `自动化部署脚本/x86架构/新统一平台/new_auto.sh` - 添加source导入和调用
---
## 测试计划
- [ ] 测试部署文件完整场景(跳过文件复制)
- [ ] 测试部署文件缺失场景(提示并退出)
- [ ] 测试data目录不存在场景(创建并复制文件)
- [ ] 测试data目录部分缺失场景(增量同步)
- [ ] 测试IP替换脚本执行
---
## 优化功能回填
> 本章节用于记录实现过程中发现的优化点和改进措施
| 日期 | 优化项 | 状态 | 备注 |
|------|--------|------|------|
| - | - | - | - |
...@@ -56,6 +56,14 @@ else ...@@ -56,6 +56,14 @@ else
exit 1 exit 1
fi fi
# 导入文件检查脚本
if [[ -f "$SCRIPT_DIR/auto_file_upload_check.sh" ]]; then
source "$SCRIPT_DIR/auto_file_upload_check.sh"
else
log "ERROR" "文件检查脚本不存在: $SCRIPT_DIR/auto_file_upload_check.sh"
exit 1
fi
#------------------------------检测模块----------------------------------------------------- #------------------------------检测模块-----------------------------------------------------
...@@ -2728,8 +2736,8 @@ function deploy_services() { ...@@ -2728,8 +2736,8 @@ function deploy_services() {
#自动化脚本路径 #自动化脚本路径
auto_java=$PWD auto_java=$PWD
add_user add_user
#检测文件 # 文件检查与部署
File_detection_java check_files_upload
#开放防火墙 #开放防火墙
firewalldjava firewalldjava
check_files check_files
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论