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

fix(deploy): 解决ARM架构部署脚本中系统类型检测,服务自检工具的文件权限检查问题

- 修复ARM架构Docker安装脚本中的文件扩展名错误
- 改进新统一平台系统类型的精细化检测,区分独立挂载点和根分区
- 更新文件权限检查脚本的日志级别,将未找到文件从错误改为警告
- 优化文件权限检查结果的统计显示,分别统计找到和缺失的项目数量
- 统一平台类型检测逻辑,使用/data/services目录作为判断标准
- 添加平台类型检测失败时的默认处理机制
- 修复硬盘空间检测脚本中未知系统类型的错误提示
上级 4d76d3b3
......@@ -766,11 +766,14 @@ function Check-FilePermissions {
($res.Output) | Where-Object { $_ -match "^[-dl]" } | ForEach-Object {
Write-Log -Level 'SUCCESS' -Message "[PERM] 权限: $_"; $lines += $_
}
} else { Write-Log -Level 'ERROR' -Message "[PERM] 未找到: $path"; $lines += "MISS $path" }
} else { Write-Log -Level 'WARN' -Message "[PERM] 未找到: $path"; $lines += "MISS $path" }
}
Write-Log -Level "INFO" -Message "[PERM] 检测结束: 共 $($lines.Count) 项"
$summaryText = if ($lines.Count -gt 0) { "已检查 $($lines.Count) 项" } else { "未找到任何匹配项" }
# 区分存在与缺失的统计
$foundCount = ($lines | Where-Object { $_ -notlike "MISS*" }).Count
$missCount = ($lines | Where-Object { $_ -like "MISS*" }).Count
$summaryText = if ($lines.Count -gt 0) { "已检查: 找到 $foundCount 项, 缺失 $missCount 项" } else { "未找到任何匹配项" }
return @{ Summary = $summaryText; Lines = $lines }
}
......@@ -1243,13 +1246,19 @@ function Main {
# 平台类型判断与中间件日志路径映射
# ------------------------------
# 判断平台类型:new(新统一平台)或 old(传统平台)
# 通过检测 /var/www/java/unifiedPlatform 目录是否存在来判断
# 通过检测 /data/services 目录是否存在来判断(与Test-UjavaHostsServices保持一致)
$platformType = "old"
$checkPlatformCmd = "test -d /var/www/java/unifiedPlatform && echo 'new' || echo 'old'"
$checkPlatformCmd = "[ -d /data/services ] && echo 'new' || echo 'old'"
$platformCheckResult = Invoke-SSHCommand -HostName $server.IP -User $server.User -Pass $server.Pass -Port $server.Port -Command $checkPlatformCmd
if ($platformCheckResult.ExitCode -eq 0 -and $platformCheckResult.Output) {
$platformType = ($platformCheckResult.Output -join "").Trim()
Write-Log -Level "INFO" -Message "[中间件] 检测到平台类型: $platformType"
# 使用与Test-UjavaHostsServices相同的输出处理逻辑
$outputLines = $platformCheckResult.Output -split "`n" | Where-Object { $_ -match '\S' }
$platformCheck = if ($outputLines) { ($outputLines | Select-Object -Last 1).Trim() } else { "" }
if ($platformCheck -eq "new" -or $platformCheck -eq "old") {
$platformType = $platformCheck
$platformName = if ($platformType -eq 'new') { '新统一平台' } else { '传统平台' }
Write-Log -Level "INFO" -Message "[中间件] 检测到平台类型: $platformType ($platformName)"
} else {
Write-Log -Level "WARN" -Message "[中间件] 平台类型检测失败,使用默认值: old"
}
# 中间件日志路径映射(根据平台类型)
......
# _PRD_文件权限检查异常
> 来源:
- `AuxiliaryTool\ScriptTool\ServiceSelfInspection\check_server_health.ps1`
## 1. 背景与目标
### 1.1 背景
执行主运行脚本后文件权限检查异常。
### 1.2 目标
确保功能正常执行记录报告,日志正确打印输出。
---
## 2. 问题报错信息
### 2.1 问题一
```
[2026-05-13 09:42:42] [INFO] 开始文件权限检测 (平台: old) ...
[2026-05-13 09:42:42] [INFO] [PERM] 目标列表生成 (平台: old)
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/java/api-java-meeting2.0/run.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/java/external-meeting-api/run.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/html/start.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/wifi-local/config.ini
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/wifi-local/startDB.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/wifi-local/wifi*
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/paperless/run.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/paperless/start.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/redis/redis-*.conf
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/emqx/config/*.conf
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /etc/rc.d/rc.local
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /usr/local/docker/mysql/my.cnf
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/java/start.sh
[2026-05-13 09:42:42] [INFO] [PERM] 待检查: /var/www/java/nginx-conf.d/*.conf
[2026-05-13 09:42:42] [INFO] [PERM] 执行: if ls -l /var/www/java/api-java-meeting2.0/run.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/java/api-java-meeting2.0/run.sh'; fi
[2026-05-13 09:42:42] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/java/api-java-meeting2.0/run.sh
[2026-05-13 09:42:42] [ERROR] [PERM] 未找到: /var/www/java/api-java-meeting2.0/run.sh
[2026-05-13 09:42:42] [INFO] [PERM] 执行: if ls -l /var/www/java/external-meeting-api/run.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/java/external-meeting-api/run.sh'; fi
[2026-05-13 09:42:42] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/java/external-meeting-api/run.sh
[2026-05-13 09:42:42] [ERROR] [PERM] 未找到: /var/www/java/external-meeting-api/run.sh
[2026-05-13 09:42:42] [INFO] [PERM] 执行: if ls -l /var/www/html/start.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/html/start.sh'; fi
[2026-05-13 09:42:43] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/html/start.sh
[2026-05-13 09:42:43] [ERROR] [PERM] 未找到: /var/www/html/start.sh
[2026-05-13 09:42:43] [INFO] [PERM] 执行: if ls -l /var/www/wifi-local/config.ini 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/wifi-local/config.ini'; fi
[2026-05-13 09:42:43] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/wifi-local/config.ini
[2026-05-13 09:42:43] [ERROR] [PERM] 未找到: /var/www/wifi-local/config.ini
[2026-05-13 09:42:43] [INFO] [PERM] 执行: if ls -l /var/www/wifi-local/startDB.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/wifi-local/startDB.sh'; fi
[2026-05-13 09:42:44] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/wifi-local/startDB.sh
[2026-05-13 09:42:44] [ERROR] [PERM] 未找到: /var/www/wifi-local/startDB.sh
[2026-05-13 09:42:44] [INFO] [PERM] 执行: if ls -l /var/www/wifi-local/wifi* 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/wifi-local/wifi*'; fi
[2026-05-13 09:42:44] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/wifi-local/wifi*
[2026-05-13 09:42:44] [ERROR] [PERM] 未找到: /var/www/wifi-local/wifi*
[2026-05-13 09:42:44] [INFO] [PERM] 执行: if ls -l /var/www/paperless/run.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/paperless/run.sh'; fi
[2026-05-13 09:42:44] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/paperless/run.sh
[2026-05-13 09:42:44] [ERROR] [PERM] 未找到: /var/www/paperless/run.sh
[2026-05-13 09:42:44] [INFO] [PERM] 执行: if ls -l /var/www/paperless/start.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/paperless/start.sh'; fi
[2026-05-13 09:42:45] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/paperless/start.sh
[2026-05-13 09:42:45] [ERROR] [PERM] 未找到: /var/www/paperless/start.sh
[2026-05-13 09:42:45] [INFO] [PERM] 执行: if ls -l /var/www/redis/redis-*.conf 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/redis/redis-*.conf'; fi
[2026-05-13 09:42:45] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/redis/redis-*.conf
[2026-05-13 09:42:45] [ERROR] [PERM] 未找到: /var/www/redis/redis-*.conf
[2026-05-13 09:42:45] [INFO] [PERM] 执行: if ls -l /var/www/emqx/config/*.conf 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/emqx/config/*.conf'; fi
[2026-05-13 09:42:45] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/emqx/config/*.conf
[2026-05-13 09:42:45] [ERROR] [PERM] 未找到: /var/www/emqx/config/*.conf
[2026-05-13 09:42:45] [INFO] [PERM] 执行: if ls -l /etc/rc.d/rc.local 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /etc/rc.d/rc.local'; fi
[2026-05-13 09:42:46] [INFO] [PERM] 输出: -rwxr-xr-x. 1 root root 937 5月 6日 10:11 /etc/rc.d/rc.local __PERM_OK__
[2026-05-13 09:42:46] [SUCCESS] [PERM] 权限: -rwxr-xr-x. 1 root root 937 5月 6日 10:11 /etc/rc.d/rc.local
[2026-05-13 09:42:46] [INFO] [PERM] 执行: if ls -l /usr/local/docker/mysql/my.cnf 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /usr/local/docker/mysql/my.cnf'; fi
[2026-05-13 09:42:46] [INFO] [PERM] 输出: __PERM_MISS__ /usr/local/docker/mysql/my.cnf
[2026-05-13 09:42:46] [ERROR] [PERM] 未找到: /usr/local/docker/mysql/my.cnf
[2026-05-13 09:42:46] [INFO] [PERM] 执行: if ls -l /var/www/java/start.sh 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/java/start.sh'; fi
[2026-05-13 09:42:46] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/java/start.sh
[2026-05-13 09:42:46] [ERROR] [PERM] 未找到: /var/www/java/start.sh
[2026-05-13 09:42:46] [INFO] [PERM] 执行: if ls -l /var/www/java/nginx-conf.d/*.conf 2>/dev/null; then echo '__PERM_OK__'; else echo '__PERM_MISS__ /var/www/java/nginx-conf.d/*.conf'; fi
[2026-05-13 09:42:47] [INFO] [PERM] 输出: __PERM_MISS__ /var/www/java/nginx-conf.d/*.conf
[2026-05-13 09:42:47] [ERROR] [PERM] 未找到: /var/www/java/nginx-conf.d/*.conf
[2026-05-13 09:42:47] [INFO] [PERM] 检测结束: 共 14 项
[2026-05-13 09:42:47] [INFO] ========== 结束检测文件权限 ==========
```
### 规范文档
- 代码规范: `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`
---
*文档结束*
# _PRD_文件权限检查异常_问题处理_计划执行
> PRD来源: `Docs/PRD/服务自检/问题修复/_PRD_文件权限检查异常_问题处理.md`
---
## 1. 问题分析
### 1.1 问题描述
执行服务自检脚本时,文件权限检查模块在old平台检测到大量文件不存在并报ERROR级别日志。
### 1.2 问题日志片段
```
[2026-05-13 09:42:42] [ERROR] [PERM] 未找到: /var/www/java/api-java-meeting2.0/run.sh
[2026-05-13 09:42:42] [ERROR] [PERM] 未找到: /var/www/java/external-meeting-api/run.sh
[2026-05-13 09:42:43] [ERROR] [PERM] 未找到: /var/www/html/start.sh
[2026-05-13 09:42:43] [ERROR] [PERM] 未找到: /var/www/wifi-local/config.ini
[2026-05-13 09:42:44] [ERROR] [PERM] 未找到: /var/www/paperless/run.sh
...共14项,仅1项存在
```
### 1.3 根因分析
#### 问题一:日志级别不合理
| 问题点 | 说明 |
|--------|------|
| 代码位置 | `check_server_health.ps1:769``Check-FilePermissions` 函数 |
| 逻辑缺陷 | 文件不存在时统一报ERROR级别,但old平台部分文件缺失是正常的 |
| 判断逻辑 | `else { Write-Log -Level 'ERROR' -Message "[PERM] 未找到: $path" }` |
#### 问题二:平台类型检测逻辑不一致(新增)
| 问题点 | 说明 |
|--------|------|
| 代码位置 | `check_server_health.ps1:1251``Invoke-MiddlewareChecks` 函数 |
| 逻辑缺陷 | 检测 `/var/www/java/unifiedPlatform` 判断平台类型,与 `Test-UjavaHostsServices``/data/services` 检测不一致 |
| 影响 | 新统一平台被误判为old平台,导致检查错误的文件列表 |
| 修复方案 | 统一为检测 `/data/services` 目录 |
---
## 2. 修复方案
### 2.1 方案设计
#### 方案A(已采纳):分级日志 + 平台适配
- 将文件不存在从 **ERROR** 降级为 **WARN**
- 保持检查列表不变,确保完整性
- 报告中区分"存在"与"缺失"的统计
#### 方案B:平台专属检查列表(备选)
- 根据更细粒度的系统信息过滤检查列表
- 需要预先获取系统配置信息
### 2.2 代码修改点
| 位置 | 修改内容 |
|------|---------|
| `check_server_health.ps1:769` | 将 `ERROR` 改为 `WARN` |
| `check_server_health.ps1:771-774` | 优化统计输出,区分存在/缺失数量 |
| `check_server_health.ps1:1249-1256` | **修复平台检测逻辑**:统一为检测 `/data/services` 目录 |
---
## 3. 执行计划
### 3.1 修改清单
- [x] 修改 `Check-FilePermissions` 函数日志级别
- [x] 优化统计输出格式
- [x] 修复平台类型检测逻辑不一致问题
- [x] 测试验证
### 3.2 详细代码变更
#### 变更1: 日志级别调整
```powershell
# 修改前(第769行)
} else { Write-Log -Level 'ERROR' -Message "[PERM] 未找到: $path"; $lines += "MISS $path" }
# 修改后
} else { Write-Log -Level 'WARN' -Message "[PERM] 未找到: $path"; $lines += "MISS $path" }
```
#### 变更2: 统计输出优化
```powershell
# 修改前
$summaryText = if ($lines.Count -gt 0) { "已检查 $($lines.Count) 项" } else { "未找到任何匹配项" }
# 修改后
$foundCount = ($lines | Where-Object { $_ -notlike "MISS*" }).Count
$missCount = ($lines | Where-Object { $_ -like "MISS*" }).Count
$summaryText = "已检查: 找到 $foundCount 项, 缺失 $missCount 项"
```
#### 变更3: 平台检测逻辑修复(关键修复)
```powershell
# 修改前(第1249-1256行)
# 通过检测 /var/www/java/unifiedPlatform 目录是否存在来判断
$platformType = "old"
$checkPlatformCmd = "test -d /var/www/java/unifiedPlatform && echo 'new' || echo 'old'"
$platformCheckResult = Invoke-SSHCommand ...
if ($platformCheckResult.ExitCode -eq 0 -and $platformCheckResult.Output) {
$platformType = ($platformCheckResult.Output -join "").Trim()
Write-Log -Level "INFO" -Message "[中间件] 检测到平台类型: $platformType"
}
# 修改后
# 通过检测 /data/services 目录是否存在来判断(与Test-UjavaHostsServices保持一致)
$platformType = "old"
$checkPlatformCmd = "test -d /data/services && echo 'new' || echo 'old'"
$platformCheckResult = Invoke-SSHCommand ...
if ($platformCheckResult.ExitCode -eq 0 -and $platformCheckResult.Output) {
$platformType = ($platformCheckResult.Output -join "").Trim()
$platformName = if ($platformType -eq 'new') { '新统一平台' } else { '传统平台' }
Write-Log -Level "INFO" -Message "[中间件] 检测到平台类型: $platformType ($platformName)"
}
```
### 3.3 测试验证步骤
1. 执行 `check_server_health.ps1` 连接old平台服务器
2. 验证日志中文件缺失显示为WARN而非ERROR
3. 确认报告统计正确区分存在/缺失数量
---
## 4. 优化功能回填
| 优化项 | 状态 | 说明 |
|--------|------|------|
| 日志分级优化 | ✅ 已完成 | 文件缺失降级为WARN |
| 统计信息优化 | ✅ 已完成 | 区分存在/缺失数量 |
| 平台检测逻辑修复 | ✅ 已完成 | 统一为 /data/services 检测,解决新统一平台误判问题 |
---
*文档生成时间: 2026-05-13*
# 问题描述
## ARM脚本:`自动化部署脚本/arm架构/新统一平台/arm_auto_check_space.sh`
## X86脚本:`自动化部署脚本/x86架构/新统一平台/auto_check_space.sh`
## 问题现象
- 在执行代码后打印了`[错误] 未知的系统类型: new_type,请使用 new_type_mount、new_type_root 或 old_type`
- 服务器空间信息:
```ignorelang
[root@localhost arm_offline_auto_unifiedPlatform]# df -h
文件系统 大小 已用 可用 已用% 挂载点
/dev/mapper/openeuler-root 11G 4.4G 5.4G 46% /
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 7.3G 0 7.3G 0% /dev/shm
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
efivarfs 256K 4.6K 252K 2% /sys/firmware/efi/efivars
tmpfs 2.9G 8.9M 2.9G 1% /run
tmpfs 7.3G 0 7.3G 0% /tmp
/dev/vda2 974M 191M 716M 22% /boot
/dev/vda1 599M 6.5M 593M 2% /boot/efi
/dev/mapper/openeuler-home 9.8G 24K 9.3G 1% /home
/dev/mapper/openeuler-data 79G 10G 65G 14% /data
[root@localhost arm_offline_auto_unifiedPlatform]#
```
- 如果又有根目录又有data目录,那就检查data目录的空间是否符合就好了。
# 报错日志信息
```ignorelang
[2026-05-13 09:21:28] [INFO] 开始检查服务器空间分配
[2026-05-13 09:21:28] [INFO] 检测到/data目录,系统类型为:新统一平台
[2026-05-13 09:21:28] [INFO] 执行空间检查脚本...
[错误] 未知的系统类型: new_type,请使用 new_type_mount、new_type_root 或 old_type
[2026-05-13 09:21:28] [ERROR] 服务器未正确分区,停止部署
```
# 问题处理计划执行文档
## 问题描述
在执行硬盘空间检测脚本时,报错"未知的系统类型: new_type",导致部署流程中断。
## 问题根因
调用方脚本(`arm_new_auto.sh`/`new_auto.sh`)检测到 `/data` 目录后设置 `system_type="new_type"`,但 `auto_check_space.sh` 脚本只接受以下三种类型:
- `new_type_mount`: 新统一平台,/data是独立挂载点
- `new_type_root`: 新统一平台,/data是根下普通目录
- `old_type`: 传统平台
## 解决方案
修改 `checkServerSpace()` 函数,在检测到 `/data` 目录后,进一步判断 `/data` 是否为独立挂载点:
1. 使用 `df` 命令检查 `/data` 的挂载情况
2. 如果是独立挂载点,设置 `system_type="new_type_mount"`
3. 如果不是独立挂载点,设置 `system_type="new_type_root"`
4. 如果没有 `/data` 目录,设置 `system_type="old_type"`
## 修改文件清单
### [x] ARM架构主部署脚本
- **文件路径**: `自动化部署脚本/arm架构/新统一平台/arm_new_auto.sh`
- **修改位置**: `checkServerSpace()` 函数(约第168-208行)
- **修改内容**: 增加挂载点检测逻辑
### [x] X86架构主部署脚本
- **文件路径**: `自动化部署脚本/x86架构/新统一平台/new_auto.sh`
- **修改位置**: `checkServerSpace()` 函数
- **修改内容**: 增加挂载点检测逻辑
### [ ] 验证修改
- 测试有独立 `/data` 挂载点的服务器
- 测试 `/data` 在根分区的情况
- 测试没有 `/data` 目录的情况
## 实施步骤
### 步骤1: 修改ARM架构脚本
1. 读取 `arm_new_auto.sh` 文件
2. 定位 `checkServerSpace()` 函数
3. 修改系统类型检测逻辑,增加挂载点判断
4. 保存修改
### 步骤2: 修改X86架构脚本
1. 读取 `new_auto.sh` 文件
2. 定位 `checkServerSpace()` 函数
3. 应用与ARM脚本相同的修改
4. 保存修改
### 步骤3: 验证测试
1. 模拟独立 `/data` 挂载点场景
2. 模拟 `/data` 在根分区场景
3. 模拟无 `/data` 目录场景
## 修改代码逻辑
```bash
# 原始代码
function checkServerSpace() {
log "INFO" "开始检查服务器空间分配"
# 判断当前服务器类型
if [ -d "/data" ]; then
system_type="new_type" # ← 问题:这里设置的值不正确
log "INFO" "检测到/data目录,系统类型为:新统一平台"
else
system_type="old_type"
log "INFO" "未检测到/data目录,系统类型为:传统平台"
fi
# 调用空间检查脚本
system_type=$system_type "$SCRIPT_DIR/arm_auto_check_space.sh"
...
}
# 修改后代码
function checkServerSpace() {
log "INFO" "开始检查服务器空间分配"
# 判断当前服务器类型
if [ -d "/data" ]; then
# 检查 /data 是否为独立挂载点
local mount_info=$(df /data | tail -1 | awk '{print $1}')
local root_info=$(df / | tail -1 | awk '{print $1}')
if [ "$mount_info" != "$root_info" ]; then
# /data 是独立挂载点
system_type="new_type_mount"
log "INFO" "检测到/data目录为独立挂载点,系统类型为:新统一平台(独立挂载)"
else
# /data 在根分区
system_type="new_type_root"
log "INFO" "检测到/data目录在根分区,系统类型为:新统一平台(根分区)"
fi
else
system_type="old_type"
log "INFO" "未检测到/data目录,系统类型为:传统平台"
fi
# 调用空间检查脚本
system_type=$system_type "$SCRIPT_DIR/arm_auto_check_space.sh"
...
}
```
## 优化功能回填
- [ ] 无(问题修复类,无新功能)
......@@ -21,13 +21,13 @@
#==============================================================#
function docker_arm() {
log "INFO" "=================================================================="
log "INFO" "开始检查并安装 Docker (x86_64 离线模式)"
log "INFO" "开始检查并安装 Docker (arm_64 离线模式)"
log "INFO" "=================================================================="
# ------------------- 定义变量 -------------------
local docker_version="29.4.3"
local temp_dir="/data/temp"
local tar_file="${temp_dir}/arm_docker_${docker_version}.tgz"
local tar_file="${temp_dir}/arm_docker_${docker_version}.tar.gz"
local service_file="${temp_dir}/docker.service"
local docker_bin="/usr/bin/docker"
......
......@@ -170,8 +170,19 @@ function checkServerSpace() {
# 判断当前服务器类型
if [ -d "/data" ]; then
system_type="new_type"
log "INFO" "检测到/data目录,系统类型为:新统一平台"
# 检查 /data 是否为独立挂载点
local mount_info=$(df /data | tail -1 | awk '{print $1}')
local root_info=$(df / | tail -1 | awk '{print $1}')
if [ "$mount_info" != "$root_info" ]; then
# /data 是独立挂载点
system_type="new_type_mount"
log "INFO" "检测到/data目录为独立挂载点,系统类型为:新统一平台(独立挂载)"
else
# /data 在根分区
system_type="new_type_root"
log "INFO" "检测到/data目录在根分区,系统类型为:新统一平台(根分区)"
fi
else
system_type="old_type"
log "INFO" "未检测到/data目录,系统类型为:传统平台"
......
......@@ -170,8 +170,19 @@ function checkServerSpace() {
# 判断当前服务器类型
if [ -d "/data" ]; then
system_type="new_type"
log "INFO" "检测到/data目录,系统类型为:新统一平台"
# 检查 /data 是否为独立挂载点
local mount_info=$(df /data | tail -1 | awk '{print $1}')
local root_info=$(df / | tail -1 | awk '{print $1}')
if [ "$mount_info" != "$root_info" ]; then
# /data 是独立挂载点
system_type="new_type_mount"
log "INFO" "检测到/data目录为独立挂载点,系统类型为:新统一平台(独立挂载)"
else
# /data 在根分区
system_type="new_type_root"
log "INFO" "检测到/data目录在根分区,系统类型为:新统一平台(根分区)"
fi
else
system_type="old_type"
log "INFO" "未检测到/data目录,系统类型为:传统平台"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论