#!/bin/bash # 同步代码到Windows节点并执行数据采集任务 # 使用方法:./sync-and-run.sh # 颜色定义 RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m' log() { echo -e "${GREEN}✅ $1${NC}"; } warn() { echo -e "${YELLOW}⚠️ $1${NC}"; } error() { echo -e "${RED}❌ $1${NC}"; } info() { echo -e "${BLUE}ℹ️ $1${NC}"; } # Windows节点信息 WINDOWS_NODE="192.168.2.33" WINDOWS_USER="administrator" PROJECT_PATH="/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live" WINDOWS_PROJECT_PATH="C:/sanguo_quant_live" # 同步代码到Windows节点 sync_code() { info "同步代码到Windows节点..." # 同步整个项目到Windows节点 rsync -avz --exclude='*.pyc' --exclude='__pycache__' --exclude='*.log' --exclude='.git' \ "$PROJECT_PATH/" "$WINDOWS_USER@$WINDOWS_NODE:$WINDOWS_PROJECT_PATH/" if [ $? -eq 0 ]; then log "代码同步成功" else error "代码同步失败" exit 1 fi } # 执行数据采集任务 run_data_collection() { info "执行数据采集任务..." # 在Windows节点上执行数据采集脚本 ssh "$WINDOWS_USER@$WINDOWS_NODE" "cd $WINDOWS_PROJECT_PATH/zhaoyun-data && python scripts/akshare_downloader.py --symbols 510050 510300 --start-date 20210101 --end-date 20231231" if [ $? -eq 0 ]; then log "数据采集任务执行成功" else error "数据采集任务执行失败" exit 1 fi } # 主函数 main() { info "开始执行Windows节点数据采集任务..." # 同步代码 sync_code # 执行数据采集任务 run_data_collection log "数据采集任务完成!" } # 检查参数 if [ $# -gt 0 ]; then case $1 in --help) echo "使用方法:$0 [选项]" echo "选项:" echo " --help 显示帮助信息" echo " --sync 只同步代码,不执行任务" echo " --run 只执行任务,不同步代码" exit 0 ;; --sync) sync_code ;; --run) run_data_collection ;; *) error "未知选项:$1" echo "使用 --help 查看帮助信息" exit 1 ;; esac else # 没有参数,执行默认操作 main fi