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

docs(service-check): 添加配置文件console检测功能需求文档

- 创建配置文件检测console开关的需求文档
- 定义新统一平台和传统平台的console配置检测路径
- 设计PowerShell和Shell双平台的console检测模块实现方案
- 规划console配置自动修复和备份策略
- 制定完整的测试用例和异常处理机制
- 编写详细的计划执行文档和技术实现要点
上级 8b51b44c
# _PRD_服务自检需求文档_配置文件检测console是否开启
## 1. 背景与目标
### 1.1 背景
- 当前服务自检脚本中存在配置文件检查IP地址功能,但是没有检查配置文件中console配置是否关闭。
- console配置开启可能会导致生产环境泄露敏感调试信息,存在安全隐患。
### 1.2 目标
- 保证原有功能能正常使用的前提下,增加对配置文件中`console`的配置检测,如果开启则需要关闭。
- 确保生产环境中所有配置文件的console相关配置均设置为false。
---
## 2. 功能需求
**目标:** 增加检查配置文件中`console`的配置值是否为false,如果不是,则需要修改为false。
### 2.1 执行脚本说明
| 执行脚本 | 脚本类型 | 说明 |
|-----------------------------------|------------|---------------------------------------|
| check_server_health.ps1 | PowerShell | Windows版本服务自检脚本(主脚本) |
| check_server_health.sh | Shell | Linux版本服务自检脚本(主脚本) |
**注意:** 主脚本通过导入模块化的配置检查模块(ConfigIPCheck.psm1 / config_ip_check.sh)来实现功能。
### 2.2 配置文件格式
沿用现有IP检查功能的配置文件类型:
| 文件扩展名 | 格式类型 | 说明 |
|------------------|--------------|--------------------------------|
| `*.yml` | YAML | Spring Boot等应用配置文件 |
| `*.properties` | Properties | Java属性配置文件 |
| `config.js` | JavaScript | 前端配置文件 |
| `config.json` | JSON | 前端配置文件 |
| `unified*.conf` | Nginx Conf | Nginx配置文件 |
### 2.3 console字段匹配规则
| 规则项 | 说明 |
|----------------|----------------------------------------------------------------------|
| 匹配方式 | 模糊匹配:搜索配置文件中包含`console`关键字的配置项 |
| 值类型 | 仅匹配布尔值:`true``false` |
| 匹配目标 | 所有`console`相关配置项(如:console.enabled, console.log等) |
| 修复方式 | 当检测到console配置值为`true`时,自动修改为`false` |
| 备份策略 | 修改前自动备份原配置文件(备份至同目录下,添加`.bak`后缀) |
### 2.4 检查路径
#### 新统一平台(/data/services)
| 配置目录 | 服务类型 |
|--------------------------------------------------------------|------------------------|
| `/data/services/api/auth/auth-sso-auth/config` | 认证服务 |
| `/data/services/api/auth/auth-sso-gatway/config` | 网关服务 |
| `/data/services/api/auth/auth-sso-system/config` | 系统服务 |
| `/data/services/api/java-meeting/java-meeting2.0/config` | 对内会议服务2.0 |
| `/data/services/api/java-meeting/java-meeting3.0/config` | 对内会议服务3.0 |
| `/data/services/api/java-meeting/java-meeting-extapi/config` | 对外会议服务 |
| `/data/services/api/java-meeting/java-message-scheduling/config` | 信息调度服务 |
| `/data/services/api/java-meeting/java-mqtt/config` | MQTT服务 |
| `/data/services/api/java-meeting/java-quartz/config` | 定时任务服务 |
| `/data/services/api/python-cmdb` | Python CMDB服务 |
| `/data/services/web/pc/pc-vue2-ai` | AI后台前端 |
| `/data/services/web/pc/pc-vue2-backstage` | 后台管理前端 |
| `/data/services/web/pc/pc-vue2-editor` | 编辑器前端 |
| `/data/services/web/pc/pc-vue2-main` | 主前端 |
| `/data/services/web/pc/pc-vue2-meetingControl` | 会议控制前端 |
| `/data/services/web/pc/pc-vue2-meetngV2` | 会议V2前端 |
| `/data/services/web/pc/pc-vue2-meetngV3` | 会议V3前端 |
| `/data/services/web/pc/pc-vue2-moniter` | 监控前端 |
| `/data/services/web/pc/pc-vue2-platform` | 平台前端 |
| `/data/services/web/pc/pc-vue2-voice` | 语音前端 |
| `/data/middleware/nginx/config` | Nginx中间件 |
#### 传统平台(/var/www/java)
| 配置路径 | 服务类型 |
|--------------------------------------------------------------|------------------------|
| `/var/www/java/api-java-meeting2.0/config` | 对内会议服务2.0 |
| `/var/www/java/external-meeting-api/config` | 对外会议服务 |
| `/var/www/java/ubains-web-2.0/static/config.json` | 主前端配置 |
| `/var/www/java/ubains-web-admin/static/config.json` | 后台管理前端配置 |
| `/var/www/java/ubains-web-h5/static/h5/config.js` | H5前端配置 |
| `/var/www/java/ubains-web-h5/static/h5/config.json` | H5前端配置(JSON) |
| `/var/www/java/nginx-conf.d` | Nginx配置目录 |
**注意:** 传统平台需根据`UjavaSystemVariant`判断路径:
- `meeting`:使用上述路径
- `unified`:路径替换为`/var/www/java/unifiedPlatform/...`
### 2.5 执行操作说明
| 操作步骤 | 说明 |
|------------------|----------------------------------------------------------------------|
| 1. 扫描配置文件 | 遍历指定目录下所有符合格式的配置文件 |
| 2. 搜索console | 使用正则表达式模糊匹配包含`console`关键字的配置行 |
| 3. 检查值 | 判断console相关配置项的值是否为`true` |
| 4. 备份文件 | 如发现需要修改的配置,先创建`.bak`备份文件 |
| 5. 修改配置 | 将`console: true``console=true`修改为`console: false``console=false` |
| 6. 记录日志 | 记录所有检测、修改操作到日志文件 |
| 7. 生成报告 | 在最终报告中汇总console配置检查结果 |
### 2.6 异常处理
| 异常情况 | 处理方式 |
|------------------------|------------------------------------------------------------------|
| 配置文件不存在 | 记录警告日志,跳过该文件继续检查 |
| 文件无读取权限 | 记录错误日志,报告权限问题 |
| 文件无写入权限 | 记录错误日志,报告权限问题,不执行修改 |
| 文件格式错误 | 记录警告日志,跳过该文件 |
| 备份失败 | 不执行修改操作,记录错误日志 |
| 修改失败 | 记录错误日志,保留原始备份文件 |
| 值格式不匹配(true/false) | 跳过该配置项,记录信息日志 |
### 2.7 验证方式
| 验证项 | 说明 |
|----------------|----------------------------------------------------------------------|
| 修改后验证 | 修改完成后重新读取配置文件,确认值已更改为false |
| 日志记录 | 记录修改前后的值、文件路径、修改时间等信息 |
| 报告输出 | 在最终检测报告中单独列出console配置检查结果 |
| 统计信息 | 统计检查的文件数量、发现问题的数量、成功修复的数量 |
### 2.8 日志输出格式
```
[CONFIG] ========== 开始检测console配置 ==========
[CONFIG] 检查目录: /data/services/api/auth/auth-sso-auth/config
[CONFIG] 检查文件: application.yml
[CONFIG] 发现问题: console.enabled = true
[CONFIG] 已备份: application.yml -> application.yml.bak
[CONFIG] 已修改: console.enabled = false
[CONFIG] 验证成功: 配置值已更新为false
[CONFIG] ========== console配置检测完成 ==========
[CONFIG] 检查文件数: 150
[CONFIG] 发现问题数: 3
[CONFIG] 修复成功数: 3
```
### 2.9 模块化实现
该功能需要在现有ConfigIPCheck模块基础上扩展:
| 模块文件 | 平台 | 新增函数 |
|------------------------------|------------|------------------------------------|
| `modules/ConfigIPCheck.psm1` | Windows | `Test-NewPlatformConsole` |
| `modules/ConfigIPCheck.psm1` | Windows | `Test-TraditionalPlatformConsole` |
| `modules/config_ip_check.sh` | Linux | `test_new_platform_console` |
| `modules/config_ip_check.sh` | Linux | `test_traditional_platform_console`|
---
## 3. 技术实现要点
### 3.1 正则表达式
| 用途 | PowerShell正则 | Shell正则 |
|----------------|-------------------------------------|---------------------------------|
| 搜索console行 | `(console\s*[:=]\s*)true` | `console[[:space:]]*[:=][[:space:]]*true` |
| 匹配配置项 | `(\w*console\w*)\s*[:=]\s*(true|false)` | `[a-zA-Z]*console[a-zA-Z]*[[:space:]]*[:=][[:space:]]*(true|false)` |
### 3.2 修改逻辑
```powershell
# PowerShell示例
$backupFile = $file + ".bak"
Copy-Item $file $backupFile -Force
$content = Get-Content $file -Raw
$content = $content -replace '(console\s*[:=]\s*)true', '$1false'
Set-Content $file $content -NoNewline
```
```bash
# Shell示例
backup_file="${file}.bak"
cp "$file" "$backup_file"
sed -i 's/\(console[[:space:]]*[:=][[:space:]]*\)true/\1false/g' "$file"
```
### 3.3 配置示例
**YAML格式:**
```yaml
# 修改前
logging:
console:
enabled: true
# 修改后
logging:
console:
enabled: false
```
**Properties格式:**
```properties
# 修改前
logging.console.enabled=true
# 修改后
logging.console.enabled=false
```
**JSON格式:**
```json
// 修改前
{
"console": {
"enabled": true
}
}
// 修改后
{
"console": {
"enabled": false
}
}
```
---
## 4. 测试用例
### 4.1 正常场景测试
| 测试场景 | 预期结果 |
|------------------------------|--------------------------------------------|
| 配置文件中console=true | 检测到问题,备份文件,修改为false,验证成功 |
| 配置文件中console=false | 检测通过,不进行修改 |
| 配置文件中没有console配置 | 检测通过,跳过该文件 |
| 多个console配置项 | 逐个检查并修复所有为true的配置项 |
### 4.2 异常场景测试
| 测试场景 | 预期结果 |
|------------------------------|--------------------------------------------|
| 配置文件无读取权限 | 记录错误日志,跳过该文件 |
| 配置文件无写入权限 | 记录错误日志,不执行修改 |
| 备份文件创建失败 | 不执行修改操作,记录错误日志 |
| 文件格式损坏 | 记录警告日志,跳过该文件 |
### 4.3 边界条件测试
| 测试场景 | 预期结果 |
|------------------------------|--------------------------------------------|
| 空配置文件 | 检测通过,无操作 |
| 值为大写TRUE/FALSE | 仅匹配小写true/false,跳过 |
| 值为字符串"true"/"false" | 正确处理字符串形式的布尔值 |
| 注释中的console配置 | 不处理注释内容 |
---
## 5. 上线检查清单
- [ ] PowerShell模块函数已添加到ConfigIPCheck.psm1
- [ ] Shell模块函数已添加到config_ip_check.sh
- [ ] 主脚本已导入新增的console检测模块
- [ ] 备份功能已测试验证
- [ ] 修改功能已测试验证
- [ ] 日志输出格式符合规范
- [ ] 报告中包含console检查结果
- [ ] 异常处理已覆盖所有场景
- [ ] 代码符合《代码规范》要求
- [ ] 已添加中文注释
---
## 6. 规范文档
- 代码规范: `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`
---
## 7. 优化功能回填
> 本章节用于记录功能实现后的优化改进,按时间倒序记录
| 日期 | 优化内容 | 优化人 |
|------------|----------------------------------------|--------|
| | 待实现 | - |
---
*文档结束*
# _PRD_服务自检需求文档_配置文件检测console_计划执行
> 本文档由需求文档自动生成,用于指导功能实施开发
## 1. 执行概述
### 1.1 项目背景
当前服务自检脚本中存在配置文件检查IP地址功能,但没有检查配置文件中console配置是否关闭。console配置开启可能导致生产环境泄露敏感调试信息,存在安全隐患。
### 1.2 执行目标
在现有ConfigIPCheck模块基础上扩展console配置检测功能,确保生产环境中所有配置文件的console相关配置均设置为false。
### 1.3 影响范围
| 影响项 | 说明 |
|------------------|----------------------------------------|
| 主要模块 | ConfigIPCheck.psm1, config_ip_check.sh |
| 主脚本 | check_server_health.ps1, check_server_health.sh |
| 配置文件 | 涉及新统一平台和传统平台共26个目录 |
| 向后兼容性 | 完全兼容,仅新增功能不影响现有IP检查 |
---
## 2. 任务分解与实施计划
### 2.1 任务总览
```
配置文件console检测功能
├── [任务1] 创建PowerShell模块函数
│ ├── Test-NewPlatformConsole
│ └── Test-TraditionalPlatformConsole
├── [任务2] 创建Shell模块函数
│ ├── test_new_platform_console
│ └── test_traditional_platform_console
├── [任务3] 修改主脚本导入逻辑
│ ├── check_server_health.ps1
│ └── check_server_health.sh
└── [任务4] 更新报告模块
└── 添加console检查结果展示
```
### 2.2 详细任务分解
#### 任务1:创建PowerShell模块函数
**文件位置:** `AuxiliaryTool/ScriptTool/ServiceSelfInspection/modules/ConfigIPCheck.psm1`
**函数1:Test-NewPlatformConsole**
| 项目 | 内容 |
|----------------|----------------------------------------|
| 函数名称 | `Test-NewPlatformConsole` |
| 功能描述 | 检查新统一平台配置文件中的console配置 |
| 参数 | ServerIP, Username, Password, Port |
| 检查路径 | /data/services下的20个配置目录 |
| 文件类型 | *.yml, *.properties, config.js, config.json, unified*.conf |
| 返回值 | Hashtable (Summary, ModifiedFiles, ErrorFiles) |
**实现要点:**
```powershell
function Test-NewPlatformConsole {
param (
[string]$ServerIP,
[string]$Username,
[string]$Password,
[int]$Port = 22
)
Write-Log -Level "INFO" -Message "[CONFIG] ========== 开始检测console配置 =========="
$Directories = @(
"/data/services/api/auth/auth-sso-auth/config",
# ... (20个目录)
)
$totalFiles = 0
$modifiedFiles = @()
$errorFiles = @()
foreach ($Directory in $Directories) {
# 1. 查找配置文件
$findCmd = "find $Directory -type f \( -name '*.yml' -o -name '*.properties' -o -name 'config.js' -o -name 'config.json' -o -name 'unified*.conf' \) 2>/dev/null"
$result = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Port $Port -Command $findCmd
if ($result.ExitCode -eq 0 -and $result.Output) {
$files = $result.Output -split "`n" | Where-Object { $_ -ne "" }
foreach ($file in $files) {
$totalFiles++
# 2. 检查console配置
$grepCmd = "grep -iE 'console\s*[:=]\s*true' $file 2>/dev/null"
$grepResult = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Port $Port -Command $grepCmd
if ($grepResult.ExitCode -eq 0 -and $grepResult.Output) {
# 3. 备份文件
$backupCmd = "cp $file $file.bak"
$backupResult = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Port $Port -Command $backupCmd
if ($backupResult.ExitCode -eq 0) {
# 4. 修改配置
$sedCmd = "sed -i 's/\(console\s*[:=]\s*\)true/\1false/gI' $file"
$sedResult = Invoke-SSHCommand -HostName $ServerIP -User $Username -Pass $Password -Port $Port -Command $sedCmd
if ($sedResult.ExitCode -eq 0) {
Write-Log -Level "SUCCESS" -Message "[CONFIG] 已修改: $file"
$modifiedFiles += $file
} else {
Write-Log -Level "ERROR" -Message "[CONFIG] 修改失败: $file"
$errorFiles += $file
}
} else {
Write-Log -Level "ERROR" -Message "[CONFIG] 备份失败: $file"
$errorFiles += $file
}
}
}
}
}
Write-Log -Level "INFO" -Message "[CONFIG] ========== console配置检测完成 =========="
Write-Log -Level "INFO" -Message "[CONFIG] 检查文件数: $totalFiles"
Write-Log -Level "INFO" -Message "[CONFIG] 修复成功数: $($modifiedFiles.Count)"
Write-Log -Level "INFO" -Message "[CONFIG] 错误文件数: $($errorFiles.Count)"
return @{
Summary = "检查 $($totalFiles) 个文件,修复 $($modifiedFiles.Count) 个,错误 $($errorFiles.Count) 个"
ModifiedFiles = $modifiedFiles
ErrorFiles = $errorFiles
TotalFiles = $totalFiles
}
}
```
**函数2:Test-TraditionalPlatformConsole**
| 项目 | 内容 |
|----------------|----------------------------------------|
| 函数名称 | `Test-TraditionalPlatformConsole` |
| 功能描述 | 检查传统平台配置文件中的console配置 |
| 参数 | ServerIP, Username, Password, Port, SystemInfo |
| 检查路径 | /var/www/java下的6个配置路径 |
| 文件类型 | *.yml, *.properties, config.js, config.json, *.conf |
| 特殊处理 | 支持meeting/unified平台分支判断 |
**实现要点:**
```powershell
function Test-TraditionalPlatformConsole {
param (
[Parameter(Mandatory=$true)][string]$ServerIP,
[Parameter(Mandatory=$true)][string]$Username,
[Parameter(Mandatory=$true)][string]$Password,
[Parameter(Mandatory=$false)][int]$Port = 22,
[Parameter(Mandatory=$false)][hashtable]$SystemInfo
)
Write-Log -Level "INFO" -Message "[CONFIG] ========== 开始检测传统平台console配置 =========="
# 获取平台类型
$ujavaVariant = "meeting"
if ($SystemInfo -and $SystemInfo.ContainsKey('UjavaSystemVariant') -and $SystemInfo.UjavaSystemVariant) {
$ujavaVariant = [string]$SystemInfo.UjavaSystemVariant
}
# 根据平台类型设置路径
$webRoot = "/var/www/java"
if ($ujavaVariant -eq "unified") {
$webRoot = "/var/www/java/unifiedPlatform"
}
$Paths = @(
"/var/www/java/api-java-meeting2.0/config",
"/var/www/java/external-meeting-api/config",
"$webRoot/ubains-web-2.0/static/config.json",
"$webRoot/ubains-web-admin/static/config.json",
"/var/www/java/ubains-web-h5/static/h5/config.js",
"/var/www/java/ubains-web-h5/static/h5/config.json",
"$webRoot/nginx-conf.d"
)
# 后续逻辑与新平台类似...
}
```
#### 任务2:创建Shell模块函数
**文件位置:** `AuxiliaryTool/ScriptTool/ServiceSelfInspection/modules/config_ip_check.sh`
**函数1:test_new_platform_console**
```bash
# 检查新统一平台配置文件中的console配置
test_new_platform_console() {
local server_ip="$1"
local username="$2"
local password="$3"
local port="${4:-22}"
log_info "[CONFIG] ========== 开始检测console配置 =========="
local directories=(
"/data/services/api/auth/auth-sso-auth/config"
"/data/services/api/auth/auth-sso-gatway/config"
# ... (20个目录)
)
local total_files=0
local modified_files=()
local error_files=()
for dir in "${directories[@]}"; do
# 查找配置文件
local files=$(ssh_find_files "$server_ip" "$username" "$password" "$port" "$dir")
while IFS= read -r file; do
[ -z "$file" ] && continue
((total_files++))
# 检查console配置
if ssh_grep_console "$server_ip" "$username" "$password" "$port" "$file"; then
# 备份文件
if ssh_backup_file "$server_ip" "$username" "$password" "$port" "$file"; then
# 修改配置
if ssh_fix_console "$server_ip" "$username" "$password" "$port" "$file"; then
log_success "[CONFIG] 已修改: $file"
modified_files+=("$file")
else
log_error "[CONFIG] 修改失败: $file"
error_files+=("$file")
fi
else
log_error "[CONFIG] 备份失败: $file"
error_files+=("$file")
fi
fi
done <<< "$files"
done
log_info "[CONFIG] ========== console配置检测完成 =========="
log_info "[CONFIG] 检查文件数: $total_files"
log_info "[CONFIG] 修复成功数: ${#modified_files[@]}"
log_info "[CONFIG] 错误文件数: ${#error_files[@]}"
}
```
**函数2:test_traditional_platform_console**
```bash
# 检查传统平台配置文件中的console配置
test_traditional_platform_console() {
local server_ip="$1"
local username="$2"
local password="$3"
local port="${4:-22}"
local system_type="${5:-meeting}"
log_info "[CONFIG] ========== 开始检测传统平台console配置 =========="
local web_root="/var/www/java"
if [ "$system_type" = "unified" ]; then
web_root="/var/www/java/unifiedPlatform"
fi
local paths=(
"/var/www/java/api-java-meeting2.0/config"
"/var/www/java/external-meeting-api/config"
"$web_root/ubains-web-2.0/static/config.json"
"$web_root/ubains-web-admin/static/config.json"
"/var/www/java/ubains-web-h5/static/h5/config.js"
"/var/www/java/ubains-web-h5/static/h5/config.json"
"$web_root/nginx-conf.d"
)
# 后续逻辑与新平台类似...
}
```
#### 任务3:修改主脚本导入逻辑
**PowerShell主脚本修改:** `check_server_health.ps1`
| 修改位置 | 修改内容 |
|----------------|--------------------------------------------|
| 第1372-1380行 | 检测配置文件中的IP地址(已有) |
| 新增(1380行后)| 检测配置文件中的console配置(新增) |
```powershell
# 在IP检测后添加console检测
Write-Host ""
Write-Log -Level "INFO" -Message "========== 开始检测console配置 =========="
if ($platformType -eq "new") {
$consoleResults = Test-NewPlatformConsole -ServerIP $server.IP -Username $server.User -Password $server.Pass -Port $server.Port
} elseif ($platformType -eq "old") {
$consoleResults = Test-TraditionalPlatformConsole -ServerIP $server.IP -Username $server.User -Password $server.Pass -Port $server.Port -SystemInfo $systemInfo
}
Write-Log -Level "INFO" -Message "========== 结束检测console配置 =========="
```
**Shell主脚本修改:** `check_server_health.sh`
| 修改位置 | 修改内容 |
|----------------|--------------------------------------------|
| IP检测代码后 | 新增console检测代码调用 |
#### 任务4:更新报告模块
**文件位置:** `modules/Report.psm1`
| 修改项 | 说明 |
|----------------|--------------------------------------------|
| Show-HealthReport函数 | 添加ConsoleResults参数 |
| 报告内容 | 新增console配置检查章节 |
```powershell
function Show-HealthReport {
param(
# ... 现有参数
[Parameter(Mandatory=$false)][hashtable]$ConsoleResults
)
# 在报告中添加console检查结果
if ($ConsoleResults) {
$report += "`n### Console配置检查`n"
$report += "| 检查项 | 结果 |`n"
$report += "|--------|------|`n"
$report += "| 检查文件数 | $($ConsoleResults.TotalFiles) |`n"
$report += "| 修复成功数 | $($ConsoleResults.ModifiedFiles.Count) |`n"
$report += "| 错误文件数 | $($ConsoleResults.ErrorFiles.Count) |`n"
}
}
```
### 2.3 实施步骤
| 步骤 | 任务 | 预计工作量 | 依赖关系 |
|------|-------------------------|------------|------------|
| 1 | 创建PowerShell函数 | 2小时 | 无 |
| 2 | 创建Shell函数 | 2小时 | 无 |
| 3 | 修改主脚本导入逻辑 | 0.5小时 | 1, 2 |
| 4 | 更新报告模块 | 0.5小时 | 1, 2 |
| 5 | 本地测试验证 | 1小时 | 1, 2, 3, 4 |
| 6 | 代码审查和优化 | 0.5小时 | 5 |
**总计:** 约6.5小时
---
## 3. 验收标准
### 3.1 功能验收
| 验收项 | 验收标准 |
|------------------|--------------------------------------------|
| console检测功能 | 能正确识别配置文件中console=true的情况 |
| 自动修复功能 | 能自动将console=true修改为console=false |
| 备份功能 | 修改前自动创建.bak备份文件 |
| 日志记录 | 所有操作都有详细的日志记录 |
| 报告输出 | 最终报告包含console检查结果统计 |
| 异常处理 | 各种异常情况都有适当的错误处理 |
### 3.2 代码质量验收
| 验收项 | 验收标准 |
|------------------|--------------------------------------------|
| 代码规范 | 符合《代码规范》要求 |
| 注释完整性 | 所有函数都有中文注释说明 |
| 向后兼容性 | 不影响现有IP检查功能 |
| 错误处理 | 所有异常情况都有处理 |
### 3.3 测试验收
| 测试场景 | 预期结果 |
|------------------|--------------------------------------------|
| 正常场景 | 能检测并修复console=true |
| 异常场景 | 能正确处理文件不存在、无权限等情况 |
| 边界条件 | 空文件、注释等情况能正确处理 |
---
## 4. 测试计划
### 4.1 单元测试
| 测试项 | 测试方法 |
|------------------|--------------------------------------------|
| PowerShell函数 | 使用Mock对象进行单元测试 |
| Shell函数 | 使用测试环境进行单元测试 |
### 4.2 集成测试
| 测试项 | 测试方法 |
|------------------|--------------------------------------------|
| 主脚本集成 | 在测试服务器上运行完整自检流程 |
| 报告生成 | 验证报告正确显示console检查结果 |
### 4.3 回归测试
| 测试项 | 测试方法 |
|------------------|--------------------------------------------|
| IP检查功能 | 确认新增功能不影响现有IP检查 |
| 其他模块 | 确认其他自检功能正常运行 |
---
## 5. 风险评估
### 5.1 技术风险
| 风险项 | 风险等级 | 应对措施 |
|------------------|----------|--------------------------------------------|
| 正则匹配不准确 | 中 | 充分测试各种配置文件格式 |
| 修改后配置无效 | 中 | 修改后验证配置文件格式正确性 |
| 跨平台兼容性 | 低 | PowerShell和Shell分别实现 |
### 5.2 业务风险
| 风险项 | 风险等级 | 应对措施 |
|------------------|----------|--------------------------------------------|
| 误修改合法配置 | 低 | 只修改console相关配置 |
| 备份文件覆盖 | 低 | 使用时间戳命名备份文件 |
### 5.3 运维风险
| 风险项 | 风险等级 | 应对措施 |
|------------------|----------|--------------------------------------------|
| 服务不可用 | 低 | 只修改配置文件,不重启服务 |
| 权限问题 | 中 | 提前检查文件权限 |
---
## 6. 实施记录
| 日期 | 实施内容 | 实施人 | 状态 |
|------------|----------------------------------|----------|------------|
| | 待开始 | - | 待实施 |
---
## 7. 后续工作
| 序号 | 工作项 | 优先级 |
|------|----------------------------------|----------|
| 1 | 代码审查 | 高 |
| 2 | 生产环境测试 | 高 |
| 3 | 编写用户手册 | 中 |
| 4 | 性能优化 | 低 |
---
## 8. 附录
### 8.1 相关文件
| 文件路径 | 说明 |
|----------------------------------------------------------------|------------------------|
| `AuxiliaryTool/ScriptTool/ServiceSelfInspection/modules/ConfigIPCheck.psm1` | PowerShell配置检查模块 |
| `AuxiliaryTool/ScriptTool/ServiceSelfInspection/modules/config_ip_check.sh` | Shell配置检查模块 |
| `AuxiliaryTool/ScriptTool/ServiceSelfInspection/check_server_health.ps1` | PowerShell主脚本 |
| `AuxiliaryTool/ScriptTool/ServiceSelfInspection/check_server_health.sh` | Shell主脚本 |
| `AuxiliaryTool/ScriptTool/ServiceSelfInspection/modules/Report.psm1` | 报告生成模块 |
### 8.2 参考文档
- 代码规范: `Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
- 文档规范: `Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
### 8.3 联系方式
| 角色 | 联系方式 |
|------------|----------------|
| 需求方 | - |
| 开发方 | - |
| 测试方 | - |
---
*本文档由需求文档 `_PRD_服务自检需求文档_配置文件检测console.md` 自动生成*
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论