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

feat(script): 在主脚本中增加服务器空间检查功能

- 新增checkServerSpace函数用于检查服务器空间分配
- 实现系统类型判断逻辑,根据/data目录存在与否区分新旧平台
- 集成auto_check_space.sh脚本调用功能
- 添加返回值处理机制,支持空间正常、不足和分区错误三种状态
- 在主流程中detectNetType函数后调用空间检查功能
- 完善日志输出和错误处理机制
- 补充需求文档和计划执行文档
上级 ce66f1b9
# 主脚本增加服务器空间分配调用
## 代码路径
- 需调用代码路径:[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
- 主脚本:[自动化部署脚本/x86架构/新统一平台/new_auto.sh]
## 功能需求
### 功能目标
**目标:** 主脚本增加一个函数用于调用服务器空间检查逻辑,需要先判断当前服务器的类型,并传入对应的参数。
### 需求描述
#### 调用逻辑
- 设置一个字段`system_type`,存储当前系统的类型,目前有`new_type``old_type`两种
- 判断当前服务器的类型
- 检查当前服务器是否存在/data目录,如果不存在则将system_type字段设置为`old_type`
- 存在/data目录,则将system_type字段设置为`new_type`
- 根据当前系统的类型,调用对应的函数
- `new_type`: 调用[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
- `old_type`: 调用[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
- 调用方式:获取脚本所在目录,使用绝对路径调用
```bash
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
system_type=new_type "$SCRIPT_DIR/auto_check_space.sh"
```
- 接收脚本执行的返回参数,并使用log函数打印日志
- 0:空间正常,继续执行后续脚本
- 1:空间不足,使用`log "ERROR"`打印错误日志,通过`exit 1`退出主脚本
- 2:未正确分区,使用`log "ERROR"`打印错误日志,通过`exit 1`退出主脚本
- 新增的函数放在主脚本的detectNetType函数后执行
#### 空间检查脚本参考
- 需求文档路径:[Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_空间检查函数需求文档.md]
- 计划执行文档路径:[Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_空间检查函数需求文档_计划执行.md]
- 脚本路径:[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
## 规范文档
- 代码规范: `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
new_auto.sh
├── detectNetType() # 已有函数
├── checkServerSpace() # 新增函数(放在detectNetType后)
│ ├── 判断系统类型(检查/data目录)
│ ├── 获取脚本所在目录
│ ├── 调用auto_check_space.sh
│ ├── 接收返回值
│ └── 使用log函数打印日志/退出
└── 主流程中调用checkServerSpace()
```
### 2. 实现步骤
- [ ] 在new_auto.sh中find detectNetType函数结束位置
- [ ] 在detectNetType函数后新增checkServerSpace函数
- [ ] 实现系统类型判断逻辑(/data目录是否存在)
- [ ] 实现脚本所在目录获取逻辑
- [ ] 实现auto_check_space.sh调用逻辑
- [ ] 实现返回值处理和日志打印
- [ ] 在主流程中调用checkServerSpace函数
### 3. 技术要点
#### 3.1 系统类型判断
```bash
if [ -d "/data" ]; then
system_type="new_type"
else
system_type="old_type"
fi
```
#### 3.2 获取脚本所在目录
```bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
```
#### 3.3 调用空间检查脚本
```bash
system_type=$system_type "$SCRIPT_DIR/auto_check_space.sh"
return_code=$?
```
#### 3.4 返回值处理
```bash
case $return_code in
0)
log "INFO" "服务器空间检查通过"
;;
1)
log "ERROR" "服务器空间不足,停止部署"
exit 1
;;
2)
log "ERROR" "服务器未正确分区,停止部署"
exit 1
;;
esac
```
### 4. 函数位置
- 插入位置:在`detectNetType`函数之后
- 调用位置:在主流程开始处,服务器检测阶段
### 5. 返回值定义
| 返回值 | 含义 | 处理方式 |
|--------|------|----------|
| 0 | 空间正常 | 继续执行 |
| 1 | 空间不足 | log ERROR + exit 1 |
| 2 | 未正确分区 | log ERROR + exit 1 |
---
## 代码修改
### 修改文件
- 主脚本:`自动化部署脚本/x86架构/新统一平台/new_auto.sh`
### 修改位置
-`detectNetType`函数后新增`checkServerSpace`函数
---
## 测试计划
- [ ] 测试new_type场景(/data目录存在)
- 空间≥100GB:返回0,继续执行
- 空间<100GB:返回1,退出并打印错误日志
- [ ] 测试old_type场景(/data目录不存在)
- /目录空间≥80GB:返回0,继续执行
- /目录空间<80GB:返回1,退出并打印错误日志
- [ ] 测试目录不存在场景(返回2)
---
## 优化功能回填
> 本章节用于记录实现过程中发现的优化点和改进措施
| 日期 | 优化项 | 状态 | 备注 |
|------|--------|------|------|
| - | - | - | - |
......@@ -119,6 +119,54 @@ done
}
#------------------------------服务器空间检测-start---------------------------------------------
# 功能说明:检查服务器空间是否满足部署要求
# 调用方式:checkServerSpace
# 返回值:无,直接exit或继续执行
function checkServerSpace() {
log "INFO" "开始检查服务器空间分配"
# 判断当前服务器类型
if [ -d "/data" ]; then
system_type="new_type"
log "INFO" "检测到/data目录,系统类型为:新统一平台"
else
system_type="old_type"
log "INFO" "未检测到/data目录,系统类型为:传统平台"
fi
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 调用空间检查脚本
log "INFO" "执行空间检查脚本..."
system_type=$system_type "$SCRIPT_DIR/auto_check_space.sh"
return_code=$?
# 根据返回值处理
case $return_code in
0)
log "INFO" "服务器空间检查通过,继续执行部署"
;;
1)
log "ERROR" "服务器空间不足,停止部署"
exit 1
;;
2)
log "ERROR" "服务器未正确分区,停止部署"
exit 1
;;
*)
log "ERROR" "空间检查返回异常值: $return_code,停止部署"
exit 1
;;
esac
log "INFO" "服务器空间检查完成"
}
#------------------------------服务器空间检测-end-----------------------------------------------
function checkOS() {
log "INFO" "开始检测服务器环境"
log "INFO" "**************《请检查当前系统是否适配》**************************************************"
......@@ -225,6 +273,9 @@ log "INFO" "服务器网卡信息检查完成"
log "INFO" "开始检测服务器网口类型"
detectNetType
log "INFO" "服务器网口类型检测完成"
# 服务器空间检查
checkServerSpace
# 用户确认以后继续往下
read -p "请确认网口信息是否正确,特别注意需要仔细观察你的项目是要光口还是电口 ,输入 y 或 Y 确认,输入 n 或 N 退出脚本: " yn
if [[ -z "$yn" || "$yn" =~ ^[yY]$ ]]; then
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论