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

fix(server-monitor): 修复服务器监测脚本配置文件路径错误

- 修改所有系统检测脚本中的配置文件路径从 $LIB_DIR/config.sh 到 $LIB_DIR/lib/config.sh
- 修改所有服务检测脚本中的通用函数库路径从 $LIB_DIR/common.sh 到 $LIB_DIR/lib/common.sh
- 更新PowerShell主脚本中远程目录创建逻辑,添加lib目录并重新上传配置文件
- 增加配置文件和通用函数库上传状态检查及错误处理
- 添加文件上传后的验证机制,确保关键文件存在且版本正确
上级 aa64d2b8
此差异已折叠。
......@@ -262,8 +262,12 @@ function Publish-Modules {
Write-Log "开始上传检测模块到远程服务器..."
try {
# 创建远程模块目录
$mkdirResult = Invoke-SSHCommand "mkdir -p $modulePath/{system,service,utils}"
# 清理并重新创建远程模块目录(确保使用最新文件)
Write-Log "清理旧模块目录..."
Invoke-SSHCommand "rm -rf $modulePath" | Out-Null
# 创建远程模块目录(包含lib目录)
$mkdirResult = Invoke-SSHCommand "mkdir -p $modulePath/{lib,system,service,utils}"
Write-Log "创建远程模块目录: $modulePath"
# 上传配置文件
......@@ -272,9 +276,20 @@ function Publish-Modules {
if (Test-Path $localConfig) {
$pscpPath = Join-Path $scriptPath "pscp.exe"
if (Test-Path $pscpPath) {
& $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localConfig "${script:Username}@${script:HostName}:$modulePath/lib/" 2>&1 | Out-Null
$uploadResult = & $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localConfig "${script:Username}@${script:HostName}:$modulePath/lib/" 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Log "config.sh 上传完成"
}
else {
Write-Log "config.sh 上传失败: $uploadResult" "ERROR"
}
}
else {
Write-Log "pscp.exe 不存在于: $pscpPath" "ERROR"
}
}
else {
Write-Log "本地配置文件不存在: $localConfig" "ERROR"
}
# 上传通用函数库
......@@ -283,9 +298,17 @@ function Publish-Modules {
if (Test-Path $localCommon) {
$pscpPath = Join-Path $scriptPath "pscp.exe"
if (Test-Path $pscpPath) {
& $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localCommon "${script:Username}@${script:HostName}:$modulePath/lib/" 2>&1 | Out-Null
$uploadResult = & $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localCommon "${script:Username}@${script:HostName}:$modulePath/lib/" 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Log "common.sh 上传完成"
}
else {
Write-Log "common.sh 上传失败: $uploadResult" "ERROR"
}
}
}
else {
Write-Log "本地通用函数库不存在: $localCommon" "ERROR"
}
# 上传系统模块
......@@ -320,6 +343,63 @@ function Publish-Modules {
Write-Log "设置模块执行权限..."
Invoke-SSHCommand "chmod +x $modulePath/system/*.sh $modulePath/service/*.sh $modulePath/lib/*.sh" | Out-Null
# 验证关键文件是否存在
Write-Log "验证上传文件..."
$configCheck = Invoke-SSHCommand "test -f $modulePath/lib/config.sh && echo 'OK' || echo 'FAIL'"
$commonCheck = Invoke-SSHCommand "test -f $modulePath/lib/common.sh && echo 'OK' || echo 'FAIL'"
if ($configCheck -match "OK" -and $commonCheck -match "OK") {
Write-Log "关键文件验证成功!" "INFO"
# 检查模块文件内容,确认是否为新版本(检查source行)
Write-Log "检查模块文件版本..."
$moduleSourceCheck = Invoke-SSHCommand "grep 'source.*lib/config.sh' $modulePath/system/01_system_basic.sh"
if ($moduleSourceCheck -match 'source.*"\$LIB_DIR/lib/config.sh"') {
Write-Log "模块文件版本正确!" "INFO"
}
else {
Write-Log "模块文件版本错误!检测到: $moduleSourceCheck" "WARN"
Write-Log "正在强制重新上传所有模块文件..." "WARN"
# 强制重新上传system和service模块
$pscpPath = Join-Path $scriptPath "pscp.exe"
$systemModuleDir = Join-Path $libPath "system"
if (Test-Path $systemModuleDir) {
foreach ($module in $ModuleConfig.SystemModules) {
$localModule = Join-Path $systemModuleDir $module
if (Test-Path $localModule) {
$uploadResult = & $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localModule "${script:Username}@${script:HostName}:$modulePath/system/" 2>&1
Write-Log " 重新上传 system/$module"
}
}
}
$serviceModuleDir = Join-Path $libPath "service"
if (Test-Path $serviceModuleDir) {
foreach ($module in $ModuleConfig.ServiceModules) {
$localModule = Join-Path $serviceModuleDir $module
if (Test-Path $localModule) {
$uploadResult = & $pscpPath -P $script:Port -l $script:Username -pw $script:Password $localModule "${script:Username}@${script:HostName}:$modulePath/service/" 2>&1
Write-Log " 重新上传 service/$module"
}
}
}
# 重新验证
$moduleSourceCheck = Invoke-SSHCommand "grep 'source.*lib/config.sh' $modulePath/system/01_system_basic.sh"
if ($moduleSourceCheck -match 'source.*"\$LIB_DIR/lib/config.sh"') {
Write-Log "重新上传后验证成功!" "INFO"
} else {
Write-Log "重新上传后仍然失败!内容: $moduleSourceCheck" "ERROR"
}
}
}
else {
Write-Log "关键文件验证失败!config.sh: $configCheck, common.sh: $commonCheck" "ERROR"
return $false
}
Write-Log "所有模块上传完成!" "INFO"
return $true
}
......@@ -341,8 +421,8 @@ function Invoke-ModuleCheck {
try {
$remoteScript = "$modulePath/$Category/$ModuleName"
# 执行远程模块
$result = Invoke-SSHCommand "cd $modulePath && source lib/config.sh && source lib/common.sh && $Category/$ModuleName" -Timeout 60
# 直接执行模块(不source配置文件,模块内部会自己处理)
$result = Invoke-SSHCommand "cd $modulePath && bash $Category/$ModuleName" -Timeout 60
if ($null -eq $result) {
Write-Log "模块 $ModuleName 执行超时或失败" "WARN"
......@@ -597,12 +677,35 @@ function Save-TestResult {
try {
if ($script:TestResults.ContainsKey($Category)) {
$currentValue = $script:TestResults[$Category]
# 判断当前值是哈希表还是数组
if ($currentValue -is [hashtable]) {
# 哈希表类型:使用键值对存储(用于系统基础信息)
$script:TestResults[$Category][$Result.Name] = $Result
}
elseif ($currentValue -is [array]) {
# 数组类型:追加元素
$script:TestResults[$Category] += $Result
}
else {
# 未初始化:根据分类类型初始化
if ($Category -eq "系统基础信息") {
$script:TestResults[$Category] = @{$Result.Name = $Result}
} else {
$script:TestResults[$Category] = @($Result)
}
}
}
else {
# 键不存在,根据分类类型初始化
if ($Category -eq "系统基础信息") {
$script:TestResults[$Category] = @{$Result.Name = $Result}
} else {
$script:TestResults[$Category] = @($Result)
}
}
}
catch {
Write-Log "保存检测结果失败: $($_.Exception.Message)" "WARN"
}
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -9,12 +9,12 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
PYTHON_CONTAINER="${CONTAINERS[python]}"
......
......@@ -9,12 +9,12 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
NGINX_CONTAINER="${CONTAINERS[nginx]}"
......
......@@ -9,12 +9,12 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
NACOS_CONTAINER="${CONTAINERS[nacos]}"
......
......@@ -9,12 +9,12 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
main() {
......
......@@ -9,12 +9,12 @@
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
main() {
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
......@@ -11,17 +11,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/tmp/check_modules"
# 加载配置文件和通用函数库
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
else
echo "ERROR: 配置文件不存在: $LIB_DIR/config.sh"
echo "ERROR: 配置文件不存在: $LIB_DIR/lib/config.sh"
exit 1
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
else
echo "ERROR: 通用函数库不存在: $LIB_DIR/common.sh"
echo "ERROR: 通用函数库不存在: $LIB_DIR/lib/common.sh"
exit 1
fi
......
# _PRD_脚本报错_问题处理
> 来源:
- `AuxiliaryTool/ScriptTool/服务器监测/check_server_health_v5.ps1`
## 1. 背景与目标
### 1.1 背景
- 执行脚本后报错
### 1.2 目标
- 脚本能够正常运行使用
---
## 2. 问题报错信息
### 2.1 问题一
```
[1/26] 执行: 01_system_basic.sh
[2026-05-15 14:46:13] [INFO] 执行模块: system/01_system_basic.sh
[2026-05-15 14:46:13] [WARN] 保存检测结果失败: 只能将哈希表添加到另一个哈希表中。
[2/26] 执行: 02_cpu_check.sh
[2026-05-15 14:46:13] [INFO] 执行模块: system/02_cpu_check.sh
[2026-05-15 14:46:13] [WARN] 保存检测结果失败: 只能将哈希表添加到另一个哈希表中。
[3/26] 执行: 03_memory_check.sh
[2026-05-15 14:46:13] [INFO] 执行模块: system/03_memory_check.sh
[2026-05-15 14:46:13] [WARN] 保存检测结果失败: 只能将哈希表添加到另一个哈希表中。
[4/26] 执行: 04_disk_check.sh
[2026-05-15 14:46:13] [INFO] 执行模块: system/04_disk_check.sh
[2026-05-15 14:46:14] [WARN] 保存检测结果失败: 只能将哈希表添加到另一个哈希表中。
[5/26] 执行: 05_oom_check.sh
```
# _PRD_保存检测结果失败_问题处理_计划执行
> **源文档**: `_PRD_保存检测结果失败_问题处理.md`
> **生成时间**: 2026-05-15
> **状态**: 已完成
> **完成时间**: 2026-05-15
---
## 1. 问题分析
### 1.1 报错信息
```
[WARN] 保存检测结果失败: 只能将哈希表添加到另一个哈希表中。
```
### 1.2 根本原因
`check_server_health_v5.ps1` 中,`$script:TestResults` 是一个混合类型的哈希表:
```powershell
$script:TestResults = @{
系统基础信息 = @{} # 哈希表
CPU资源 = @() # 数组
内存资源 = @() # 数组
# ...
}
```
`Save-TestResult` 函数使用 `+=` 操作符向数组添加元素:
```powershell
$script:TestResults[$Category] += $Result
```
**问题**:当 `$Category` 为"系统基础信息"时,其值是哈希表 `@{}`,而 `+=` 对哈希表的操作是合并哈希表,不能添加 PSCustomObject,导致报错。
---
## 2. 修复方案
### 2.1 修改 `Save-TestResult` 函数
**位置**: `check_server_health_v5.ps1` 第592-609行
**修复逻辑**:
1. 判断当前分类的值类型
2. 如果是哈希表(系统基础信息),使用键值对方式存储
3. 如果是数组(其他分类),使用 `+=` 添加元素
### 2.2 修改 `New-MarkdownReport` 函数
**位置**: `check_server_health_v5.ps1` 第714-726行
**修复逻辑**:
- "系统基础信息"的处理方式需要适配新的数据结构
---
## 3. 执行步骤
### 步骤1: 修改 `Save-TestResult` 函数
```powershell
function Save-TestResult {
param(
[string]$Category,
[PSCustomObject]$Result
)
try {
if ($script:TestResults.ContainsKey($Category)) {
$currentValue = $script:TestResults[$Category]
# 判断当前值是哈希表还是数组
if ($currentValue -is [hashtable]) {
# 哈希表类型:使用键值对存储
$script:TestResults[$Category][$Result.Name] = $Result
}
elseif ($currentValue -is [array]) {
# 数组类型:追加元素
$script:TestResults[$Category] += $Result
}
else {
# 未初始化:根据分类类型初始化
if ($Category -eq "系统基础信息") {
$script:TestResults[$Category] = @{$Result.Name = $Result}
} else {
$script:TestResults[$Category] = @($Result)
}
}
}
}
catch {
Write-Log "保存检测结果失败: $($_.Exception.Message)" "WARN"
}
}
```
### 步骤2: 验证 `New-MarkdownReport` 函数
确认第714-726行的处理逻辑与新的数据结构兼容:
```powershell
# 系统基础信息
if ($TestResults["系统基础信息"].Count -gt 0) {
$reportLines += "## 系统基础信息"
$reportLines += ""
$info = $TestResults["系统基础信息"]
foreach ($item in $info.Values) {
if ($item -is [PSCustomObject]) {
$status = Get-StatusIcon -Status $item.Status
$reportLines += "- **$($item.Name)**: $($item.Value) $status"
}
}
$reportLines += ""
}
```
**结论**: 此部分逻辑已正确,无需修改。
---
## 4. 测试验证
### 4.1 测试步骤
1. 修复后重新运行脚本
2. 验证不再出现"只能将哈希表添加到另一个哈希表中"错误
3. 验证报告生成正常
### 4.2 预期结果
- 所有检测模块结果正常保存
- Markdown报告完整生成
---
## 5. 优化建议
### 5.1 数据结构优化
建议统一数据结构,避免混合类型:
**方案A**: 全部使用数组
```powershell
$script:TestResults = @{
系统基础信息 = @()
CPU资源 = @()
# ...
}
```
**方案B**: 使用嵌套对象
```powershell
$script:TestResults = [PSCustomObject]@{
系统基础信息 = @{}
CPU资源 = @()
# ...
}
```
### 5.2 类型检查优化
在初始化时明确类型,避免运行时判断。
---
## 6. 变更记录
| 日期 | 版本 | 变更内容 | 作者 |
|------|------|----------|------|
| 2026-05-15 | 1.0 | 创建计划文档 | Claude Code |
---
## 7. 优化功能回填
> 本节记录执行过程中发现的可优化项,执行后回填
### 7.1 已发现问题并修复
#### 问题1: 远程目录创建缺少lib目录
**现象**: 所有模块执行时报错 `lib/config.sh: 没有那个文件或目录`
**根因**: `Publish-Modules` 函数中创建远程目录时未包含 `lib` 目录:
```powershell
# 原代码(错误)
$mkdirResult = Invoke-SSHCommand "mkdir -p $modulePath/{system,service,utils}"
# 修复后(正确)
$mkdirResult = Invoke-SSHCommand "mkdir -p $modulePath/{lib,system,service,utils}"
```
**修复位置**: `check_server_health_v5.ps1` 第266行
**同步更新**:
- 桌面版本: `C:\Users\UBAINS\Desktop\Test\check_server_health_v5.ps1`
- 项目版本: `AuxiliaryTool/ScriptTool/服务器监测/check_server_health_v5.ps1`
### 7.2 待优化项
- [ ] **错误输出被隐藏**: pscp上传命令使用 `| Out-Null` 隐藏了错误输出,建议添加日志记录
- [ ] **文件存在性检查优化**: 上传前应检查本地文件是否存在,避免静默失败
- [ ] **上传失败处理**: 建议添加上传失败后的重试机制
- [ ] **数据结构统一**: 考虑统一使用数组类型,避免混合类型带来的复杂性
# _PRD_脚本报错_问题处理
> 来源:
- `AuxiliaryTool/ScriptTool/服务器监测/check_server_health_v5.ps1`
## 1. 背景与目标
### 1.1 背景
- 执行脚本后报错
### 1.2 目标
- 脚本能够正常运行使用
---
## 2. 问题报错信息
### 2.1 问题一
```
[2026-05-15 15:02:37] [INFO] 执行模块: system/01_system_basic.sh
[2026-05-15 15:02:37] [WARN] 模块 01_system_basic.sh 执行超时或失败
[2/26] 执行: 02_cpu_check.sh
[2026-05-15 15:02:37] [INFO] 执行模块: system/02_cpu_check.sh
[2026-05-15 15:02:37] [WARN] 02_cpu_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
[3/26] 执行: 03_memory_check.sh
[2026-05-15 15:02:37] [INFO] 执行模块: system/03_memory_check.sh
[2026-05-15 15:02:37] [WARN] 03_memory_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
[4/26] 执行: 04_disk_check.sh
[2026-05-15 15:02:37] [INFO] 执行模块: system/04_disk_check.sh
[2026-05-15 15:02:38] [WARN] 04_disk_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
[5/26] 执行: 05_oom_check.sh
[2026-05-15 15:02:38] [INFO] 执行模块: system/05_oom_check.sh
[2026-05-15 15:02:38] [WARN] 05_oom_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
[6/26] 执行: 06_process_check.sh
[2026-05-15 15:02:38] [INFO] 执行模块: system/06_process_check.sh
[2026-05-15 15:02:38] [WARN] 06_process_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
```
# _PRD_配置文件不存在_问题处理_计划执行
> **源文档**: `_PRD_配置文件不存在_问题处理.md`
> **生成时间**: 2026-05-15
> **状态**: 已完成
> **完成时间**: 2026-05-15
---
## 1. 问题分析
### 1.1 报错信息
```
[WARN] 02_cpu_check.sh 错误: 配置文件不存在: /tmp/check_modules/config.sh
```
### 1.2 根本原因
模块脚本中配置文件路径与实际上传路径不匹配:
```bash
# 模块脚本中的路径(错误)
LIB_DIR="/tmp/check_modules"
source "$LIB_DIR/config.sh" # 查找: /tmp/check_modules/config.sh
source "$LIB_DIR/common.sh" # 查找: /tmp/check_modules/common.sh
# 实际上传后的路径
/tmp/check_modules/lib/config.sh # 正确位置
/tmp/check_modules/lib/common.sh # 正确位置
```
---
## 2. 修复方案
### 2.1 批量修改所有模块脚本
**修改位置**: 所有 `lib/system/*.sh``lib/service/*.sh` 文件
**修改内容**:
```bash
# 修改前
if [ -f "$LIB_DIR/config.sh" ]; then
source "$LIB_DIR/config.sh"
fi
if [ -f "$LIB_DIR/common.sh" ]; then
source "$LIB_DIR/common.sh"
fi
# 修改后
if [ -f "$LIB_DIR/lib/config.sh" ]; then
source "$LIB_DIR/lib/config.sh"
fi
if [ -f "$LIB_DIR/lib/common.sh" ]; then
source "$LIB_DIR/lib/common.sh"
fi
```
---
## 3. 执行步骤
### 步骤1: 批量修改system模块
使用sed命令批量替换:
```bash
sed -i 's|$LIB_DIR/config.sh|$LIB_DIR/lib/config.sh|g' lib/system/*.sh
sed -i 's|$LIB_DIR/common.sh|$LIB_DIR/lib/common.sh|g' lib/system/*.sh
```
### 步骤2: 批量修改service模块
```bash
sed -i 's|$LIB_DIR/config.sh|$LIB_DIR/lib/config.sh|g' lib/service/*.sh
sed -i 's|$LIB_DIR/common.sh|$LIB_DIR/lib/common.sh|g' lib/service/*.sh
```
### 步骤3: 验证修改
检查修改后的文件内容是否正确。
---
## 4. 影响范围
### 4.1 需要修改的文件
**system模块** (13个):
- 01_system_basic.sh
- 02_cpu_check.sh
- 03_memory_check.sh
- 04_disk_check.sh
- 05_oom_check.sh
- 06_process_check.sh
- 07_network_check.sh
- 11_scheduled_tasks.sh
- 12_port_check.sh
- 40_comprehensive_diagnosis.sh
- 43_security_compliance.sh
- 44_system_logs.sh
- 45_time_sync.sh
**service模块** (18个):
- 20_docker_basic.sh ~ 33_app_logs.sh
---
## 5. 测试验证
### 5.1 测试步骤
1. 重新上传模块到远程服务器
2. 执行检测脚本
3. 验证不再出现"配置文件不存在"错误
4. 验证检测结果正常输出
---
## 6. 变更记录
| 日期 | 版本 | 变更内容 | 作者 |
|------|------|----------|------|
| 2026-05-15 | 1.0 | 创建计划文档 | Claude Code |
---
## 7. 优化功能回填
> 本节记录执行过程中发现的可优化项,执行后回填
### 7.1 已执行修复
#### 修复内容
批量修改了所有模块脚本中的配置文件路径引用:
**修改命令**:
```bash
# 修改if语句中的路径
sed -i 's|"$LIB_DIR/config.sh"|"$LIB_DIR/lib/config.sh"|g' lib/system/*.sh lib/service/*.sh
sed -i 's|"$LIB_DIR/common.sh"|"$LIB_DIR/lib/common.sh"|g' lib/system/*.sh lib/service/*.sh
# 修改错误消息中的路径
sed -i 's|配置文件不存在: $LIB_DIR/config.sh|配置文件不存在: $LIB_DIR/lib/config.sh|g' lib/system/*.sh lib/service/*.sh
sed -i 's|通用函数库不存在: $LIB_DIR/common.sh|通用函数库不存在: $LIB_DIR/lib/common.sh|g' lib/system/*.sh lib/service/*.sh
```
**影响文件**: 31个模块脚本
- System模块: 13个
- Service模块: 18个
**同步更新**:
- 项目版本: `AuxiliaryTool/ScriptTool/服务器监测/lib/`
- 桌面版本: `C:/Users/UBAINS/Desktop/Test/lib/`
### 7.2 待优化项
- [x] **上传前清理旧文件**: 已添加 `rm -rf $modulePath` 清理旧模块,确保使用最新文件
- [ ] **路径变量优化**: 考虑在模块中定义 `$CONFIG_FILE``$COMMON_LIB` 变量,避免硬编码重复
- [ ] **路径验证**: 在加载配置文件前增加更详细的错误提示和诊断信息
- [ ] **统一模块模板**: 创建模块模板文件,避免此类路径问题再次发生
### 7.3 额外修复
**问题**: pscp上传时服务器上的旧文件没有被覆盖,导致使用旧版本模块
**解决方案**: 在 `Publish-Modules` 函数中添加清理步骤:
```powershell
# 清理并重新创建远程模块目录(确保使用最新文件)
Write-Log "清理旧模块目录..."
Invoke-SSHCommand "rm -rf $modulePath" | Out-Null
```
**修复位置**: `check_server_health_v5.ps1` 第267行
# 远程自动化部署_需求文档
## 相关资料要求
### 部署脚本
- AuxiliaryTool/ScriptTool/RemoteDeploy
### 部署包路径
- ARM架构:已上传至对应服务器。
- ARM架构:已上传至对应服务器。先不部署。
- X86架构:已上传至对应服务器。
### 目标服务器
......@@ -9,11 +11,11 @@
- ARM架构服务器:192.168.9.76 root Ubains@123
### 部署文档
- X86部署文档路径:"\\192.168.9.9\发布版本\03服务器部署\临时使用-新统一平台\X86部署包\新统一平台自动化部署操作指导.docx"
- ARM部署文档路径:"\\192.168.9.9\发布版本\03服务器部署\临时使用-新统一平台\ARM部署包-请勿使用\新统一平台自动化部署操作指导.docx"
- X86部署文档路径:"Docs/PRD/远程自动化部署/新统一平台自动化部署操作指导.md"
- ARM部署文档路径:"Docs/PRD/远程自动化部署/ARM架构_新统一平台自动化部署操作指导.md"
## 授权文件
- X86-5.52授权文件路径:"\\192.168.9.9\发布版本\03服务器部署\临时使用-新统一平台\测试授权文件-请勿使用\5.52授权文件\license.zip"
- X86-5.52授权文件路径:"E:\自动化部署\X86-5.52\license.zip"
- ARM-9.76授权文件路径:"\\192.168.9.9\发布版本\03服务器部署\临时使用-新统一平台\测试授权文件-请勿使用\9.76授权文件\license.zip"
### 相关服务路径
......
......@@ -2,33 +2,8 @@
#------------------------------工具类模块---------------------------------------------------
# 日志打印函数
LOG_FILE="/data/logs/new_auto_script.log"
mkdir -p "$(dirname "$LOG_FILE")" 2>/dev/null"
mkdir -p "$(dirname "$LOG_FILE")" 2>/dev/null
# 自动部署所有服务的标志(默认false,需要通过--all参数启用)
AUTO_DEPLOY_ALL=false
# 解析命令行参数
while [[ $# -gt 0 ]]; do
case $1 in
--all)
AUTO_DEPLOY_ALL=true
log "INFO" "启用自动部署所有系统模式"
shift
;;
--help|-h)
echo "用法: $0 [选项]"
echo "选项:"
echo " --all 自动部署所有系统(无需手动选择)"
echo " --help 显示此帮助信息"
exit 0
;;
*)
echo "未知参数: $1"
echo "使用 --help 查看帮助信息"
exit 1
;;
esac
done
# 用户输入的东西也同步记录到日志信息里面
function log() {
# 获取当前时间
......@@ -71,6 +46,32 @@ function log() {
echo "[$timestamp] [$level] $message" >> "$LOG_FILE"
}
# 自动部署所有服务的标志(默认false,需要通过--all参数启用)
AUTO_DEPLOY_ALL=false
# 解析命令行参数
while [[ $# -gt 0 ]]; do
case $1 in
--all)
AUTO_DEPLOY_ALL=true
log "INFO" "启用自动部署所有系统模式"
shift
;;
--help|-h)
echo "用法: $0 [选项]"
echo "选项:"
echo " --all 自动部署所有系统(无需手动选择)"
echo " --help 显示此帮助信息"
exit 0
;;
*)
echo "未知参数: $1"
echo "使用 --help 查看帮助信息"
exit 1
;;
esac
done
#------------------------------导入中间件部署模块---------------------------------------------------
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论