Files
2026-04-10 16:35:02 +08:00

141 lines
4.1 KiB
PowerShell
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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节点已准备好使用!"