auto-sync: 2026-04-10 16:35:02

This commit is contained in:
cfdaily
2026-04-10 16:35:02 +08:00
parent daea31f830
commit b69be877a0
+140
View File
@@ -0,0 +1,140 @@
#!/usr/bin/env powershell
# Windows-Test-Node节点本地检查脚本
# 使用方法:.\windows-node-check.ps1
# 颜色定义
$RED = "`e[31m"
$GREEN = "`e[32m"
$YELLOW = "`e[33m"
$BLUE = "`e[34m"
$NC = "`e[0m"
function Log { Write-Host "$GREEN$args$NC" }
function Warn { Write-Host "$YELLOW⚠️ $args$NC" }
function Error { Write-Host "$RED$args$NC" }
function Info { Write-Host "$BLUE $args$NC" }
# Windows节点信息
$WINDOWS_NODE = "192.168.2.33"
$WINDOWS_USER = "administrator"
# 测试连接
Info "测试Windows-Test-Node节点连接..."
# 尝试Ping节点(允许失败)
Info "1/5: 测试网络连接(Ping..."
try {
$pingResult = Test-Connection -ComputerName $WINDOWS_NODE -Count 3 -Quiet
if ($pingResult) {
Log "Ping成功"
} else {
Warn "Ping失败,但继续尝试其他方法"
Info "请检查以下问题:"
Info "1. Windows节点是否已启动"
Info "2. 网络连接是否正常"
Info "3. 防火墙是否允许Ping"
Info "4. VPN连接是否已建立"
}
} catch {
Warn "Ping命令执行失败:$_"
}
# 尝试SSH连接(允许失败)
Info "2/5: 测试SSH连接..."
try {
$sshResult = ssh "$WINDOWS_USER@$WINDOWS_NODE" "echo 'SSH连接成功'"
if ($?) {
Log "SSH连接成功:$sshResult"
} else {
Error "SSH连接失败"
Info "请检查以下问题:"
Info "1. Windows节点是否已启用SSH服务"
Info "2. 用户名和密码是否正确"
Info "3. 防火墙是否允许SSH连接"
Exit 1
}
} catch {
Error "SSH命令执行失败:$_"
Exit 1
}
# 检查Python环境
Info "3/5: 检查Python环境..."
try {
$pythonVersion = ssh "$WINDOWS_USER@$WINDOWS_NODE" "python --version 2>&1 || python3 --version 2>&1"
if ($?) {
Log "Python环境已安装:$pythonVersion"
} else {
Error "Python环境未安装"
Info "请在Windows节点上安装Python"
Exit 1
}
} catch {
Error "Python检查失败:$_"
Exit 1
}
# 检查AKShare安装
Info "4/5: 检查AKShare安装..."
try {
$akshareVersion = ssh "$WINDOWS_USER@$WINDOWS_NODE" "python -c 'import akshare; print(akshare.__version__)' 2>/dev/null || python3 -c 'import akshare; print(akshare.__version__)' 2>/dev/null"
if ($?) {
Log "AKShare已安装:$akshareVersion"
} else {
Error "AKShare未安装"
Info "请在Windows节点上安装AKShare"
Info "pip install akshare"
Exit 1
}
} catch {
Error "AKShare检查失败:$_"
Exit 1
}
# 检查数据采集脚本是否存在
Info "5/5: 检查数据采集脚本..."
try {
$scriptPath = "C:\sanguo_quant_live\zhaoyun-data\scripts\akshare_downloader.py"
$scriptExists = ssh "$WINDOWS_USER@$WINDOWS_NODE" "test -f '$scriptPath'"
if ($?) {
Log "数据采集脚本已存在:$scriptPath"
} else {
Warn "数据采集脚本不存在:$scriptPath"
Info "请确保脚本已同步到Windows节点"
}
} catch {
Error "脚本检查失败:$_"
}
# 测试运行数据采集脚本
Info "测试数据采集脚本..."
try {
$testResult = ssh "$WINDOWS_USER@$WINDOWS_NODE" "python $scriptPath --test 2>&1 || python3 $scriptPath --test 2>&1"
if ($?) {
Log "数据采集脚本测试成功"
} else {
Error "数据采集脚本测试失败"
Info "错误信息:$testResult"
Exit 1
}
} catch {
Error "脚本测试失败:$_"
Exit 1
}
# 输出Windows节点连接信息
Write-Host ""
Log "Windows-Test-Node节点检查完成!"
Write-Host ""
Info "Windows节点信息:"
Info " IP地址:$WINDOWS_NODE"
Info " 用户名:$WINDOWS_USER"
Info " Python版本:$pythonVersion"
Info " AKShare版本:$akshareVersion"
Write-Host ""
Info "使用方法:"
Info "在Windows节点上执行数据采集任务:"
Info "ssh $WINDOWS_USER@$WINDOWS_NODE 'cd /c/sanguo_quant_live/zhaoyun-data && python scripts/akshare_downloader.py --symbols 510050 510300 --start-date 20210101 --end-date 20231231'"
Write-Host ""
Log "Windows-Test-Node节点已准备好使用!"