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

feat(script): 更新空间检查脚本以支持多种系统类型

- 新增 new_type_mount 类型用于 /data 独立挂载点场景
- 新增 new_type_root 类型用于 /data 普通目录场景
- 实现 mountpoint 检查逻辑区分不同 /data 目录类型
- 更新空间检查规则为 100GB 和 80GB 不同要求
- 修改调用参数传递方式适配新的系统类型
- 添加详细的系统类型与检查规则对照表
上级 dead05ca
......@@ -9,20 +9,25 @@
### 需求描述
#### 调用逻辑
- 设置一个字段`system_type`,存储当前系统的类型,目前有`new_type``old_type`
- 设置一个字段`system_type`,存储当前系统的类型,目前有`new_type_mount``new_type_root``old_type`
- 判断当前服务器的类型
- 检查当前服务器是否存在/data目录,如果不存在则将system_type字段设置为`old_type`
- 存在/data目录,则将system_type字段设置为`new_type`
- **场景一**`/data`是独立挂载点(使用`mountpoint -q /data`判断)
-`system_type`字段设置为`new_type_mount`,检查`/data`分区,要求≥100GB
- **场景二**`/data`目录存在但不是独立挂载点(根目录下的普通目录)
-`system_type`字段设置为`new_type_root`,检查`/`根分区,要求≥100GB
- **场景三**`/data`目录不存在
-`system_type`字段设置为`old_type`,检查`/`根分区,要求≥80GB
- 根据当前系统的类型,调用对应的函数
- `new_type`: 调用[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
- `new_type_mount`: 调用[自动化部署脚本/x86架构/新统一平台/auto_check_space.sh]
- `new_type_root`: 调用[自动化部署脚本/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"
system_type=new_type_mount "$SCRIPT_DIR/auto_check_space.sh"
```
- 接收脚本执行的返回参数,并使用log函数打印日志
......@@ -32,6 +37,14 @@
- 新增的函数放在主脚本的detectNetType函数后执行
#### 系统类型与检查规则对照表
| system_type | 场景描述 | 检查路径 | 空间要求 |
|-------------|---------|---------|---------|
| `new_type_mount` | /data是独立挂载点 | /data | ≥100GB |
| `new_type_root` | /data是根下普通目录 | / | ≥100GB |
| `old_type` | /data目录不存在 | / | ≥80GB |
#### 空间检查脚本参考
- 需求文档路径:[Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_空间检查函数需求文档.md]
- 计划执行文档路径:[Docs/PRD/自动化部署脚本/新统一平台/需求文档/_PRD_空间检查函数需求文档_计划执行.md]
......
......@@ -33,9 +33,18 @@ new_auto.sh
#### 3.1 系统类型判断
```bash
# 判断系统类型和检查路径
if [ -d "/data" ]; then
system_type="new_type"
# /data 目录存在,判断是否为独立挂载点
if mountpoint -q /data 2>/dev/null; then
# /data 是独立挂载点
system_type="new_type_mount"
else
# /data 只是根目录下的普通目录
system_type="new_type_root"
fi
else
# /data 不存在,传统平台
system_type="old_type"
fi
```
......@@ -79,6 +88,14 @@ esac
| 1 | 空间不足 | log ERROR + exit 1 |
| 2 | 未正确分区 | log ERROR + exit 1 |
### 6. 系统类型与检查规则对照表
| system_type | 场景描述 | 检查路径 | 空间要求 |
|-------------|---------|---------|---------|
| `new_type_mount` | /data是独立挂载点 | /data | ≥100GB |
| `new_type_root` | /data是根下普通目录 | / | ≥100GB |
| `old_type` | /data目录不存在 | / | ≥80GB |
---
## 代码修改
......@@ -92,13 +109,16 @@ esac
---
## 测试计划
- [ ] 测试new_type场景(/data目录存在)
- 空间≥100GB:返回0,继续执行
- 空间<100GB:返回1,退出并打印错误日志
- [ ] 测试new_type_mount场景(/data是独立挂载点)
- /data分区空间≥100GB:返回0,继续执行
- /data分区空间<100GB:返回1,退出并打印错误日志
- [ ] 测试new_type_root场景(/data是根下普通目录)
- 根分区空间≥100GB:返回0,继续执行
- 根分区空间<100GB:返回1,退出并打印错误日志
- [ ] 测试old_type场景(/data目录不存在)
- /目录空间≥80GB:返回0,继续执行
- /目录空间<80GB:返回1,退出并打印错误日志
- [ ] 测试目录不存在场景(返回2)
- 根分区空间≥80GB:返回0,继续执行
- 根分区空间<80GB:返回1,退出并打印错误日志
- [ ] 测试未知system_type场景(返回2)
---
......
......@@ -2,7 +2,8 @@
#===================================================================================
# 功能说明:自动检查服务器空间分配
# 文件路径:自动化部署脚本/x86架构/新统一平台/auto_check_space.sh
# 调用方式:system_type=new_type ./auto_check_space.sh
# 调用方式:system_type=new_type_mount ./auto_check_space.sh
# system_type=new_type_root ./auto_check_space.sh
# system_type=old_type ./auto_check_space.sh
# 返回值:0-空间正常, 1-空间不足, 2-未正确分区
# 创建日期:2026-03-30
......@@ -12,7 +13,8 @@
# 函数名称:auto_check_space
# 功能说明:检查服务器空间分配是否满足要求
# 参数说明:通过环境变量 $system_type 传入系统类型
# new_type: 新统一平台,检查/data目录,要求≥100GB
# new_type_mount: 新统一平台,/data是独立挂载点,检查/data目录,要求≥100GB
# new_type_root: 新统一平台,/data是根下普通目录,检查/目录,要求≥100GB
# old_type: 传统平台,检查/目录,要求≥80GB
# 返回值:0-空间正常, 1-空间不足, 2-未正确分区
#===================================================================================
......@@ -28,11 +30,16 @@ auto_check_space() {
# 根据系统类型设置检查路径和预期容量
case "$system_type" in
new_type)
# 新统一平台:检查/data目录,要求≥100GB
new_type_mount)
# 新统一平台:/data是独立挂载点,检查/data目录,要求≥100GB
check_path="/data"
exceted_space=100
;;
new_type_root)
# 新统一平台:/data是根下普通目录,检查/目录,要求≥100GB
check_path="/"
exceted_space=100
;;
old_type)
# 传统平台:检查/目录,要求≥80GB
check_path="/"
......@@ -40,7 +47,7 @@ auto_check_space() {
;;
*)
# 未知系统类型
echo "[错误] 未知的系统类型: $system_type,请使用 new_type 或 old_type"
echo "[错误] 未知的系统类型: $system_type,请使用 new_type_mount、new_type_root 或 old_type"
return 2
;;
esac
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论