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

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

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