#!/bin/bash # 5分钟K线数据每日采集脚本 # 交易日收盘后执行,采集当天全市场的5分钟K线数据 # 建议在 17:30 后运行(收盘后数据完整) # # 使用新浪API(stock_zh_a_minute),稳定不限流 # 3线程并发(东财API),全市场约5800只,预计耗时约60-90分钟 DAY_OF_WEEK=$(date +%u) # 周六(6)、周日(7)跳过 if [ "$DAY_OF_WEEK" -ge 6 ]; then echo "$(date '+%Y-%m-%d %H:%M:%S') 今天是周末,跳过5分钟K线采集" exit 0 fi echo "$(date '+%Y-%m-%d %H:%M:%S') 开始5分钟K线采集..." cd /opt/stock-app export DB_PASSWORD=stock_password_2025 # 清理可能残留的锁文件(防止权限问题导致无法启动) LOCK_FILE="/tmp/sync_kline_5min.lock" if [ -f "$LOCK_FILE" ]; then # 检查锁文件中记录的PID是否仍在运行 OLD_PID=$(cat "$LOCK_FILE" 2>/dev/null) if [ -n "$OLD_PID" ] && ! kill -0 "$OLD_PID" 2>/dev/null; then echo "$(date '+%Y-%m-%d %H:%M:%S') 清理残留锁文件 (旧PID: $OLD_PID 已不存在)" rm -f "$LOCK_FILE" fi fi /opt/stock-app/venv/bin/python sync_kline_5min.py --delay 0.8 --workers 3 EXIT_CODE=$? echo "$(date '+%Y-%m-%d %H:%M:%S') 5分钟K线采集完成,退出码: $EXIT_CODE" exit $EXIT_CODE