141 lines
4.1 KiB
PowerShell
Executable File
141 lines
4.1 KiB
PowerShell
Executable File
#!/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节点已准备好使用!"
|