Files
sanguo_vnpy_v2/scripts/data_platform/run_daily_update.sh
T
claude_dev 1a88954126 feat(data): v2 数据下载(SSH模式 STOCK_MOUNT+rsync) + launchd定时 + 文档
- v1 data_platform 脚本复制到 v2/scripts/data_platform/ 维护
- daily_all_update.py: 路径用 STOCK_MOUNT env(SSH模式) + STOCK_LIMIT(验证)
- run_daily_update.sh: rsync拉NAS→本地 + v1增量 + 推NAS(SSH key免密,不挂载)
- launchd com.sanguo.data-update 每日15:30(替代crontab,macOS FDA限制)
- 验证: STOCK_LIMIT=2 updated=2 records=24 拉到当天
- 文档 docs/deployment/data-download.md
2026-07-07 19:41:07 +08:00

37 lines
1.8 KiB
Bash
Executable File
Raw 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.
#!/bin/bash
# v2 数据下载包装(SSH 模式:rsync NAS↔本地 + 跑 v1 daily_all_update
# 不依赖 SMB 挂载,用 sanguo-nas SSH key 免密。
# 用法:./run_daily_update.sh [--skip-daily|--skip-15min]
# env:
# STOCK_LIMIT=N 限制股票数(验证用,默认 0=全市场)
# SKIP_PULL=1 跳过 rsync 拉(验证用;生产必须拉,v1 才能增量)
set -e
NAS=sanguo-nas
LOCAL=${STOCK_MOUNT:-/tmp/stock_dl}
export STOCK_MOUNT=$LOCAL
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
mkdir -p "$LOCAL/logs/daily_update/progress" \
"$LOCAL/A股数据/日线数据/daily" \
"$LOCAL/minute_kline/15min" \
"$LOCAL/A股数据/stock_info" \
"$LOCAL/sanguo_vnpy/data"
if [ "${SKIP_PULL:-0}" != "1" ]; then
echo "=== 1. rsync 拉 NAS 现有 → 本地(增量,首次慢后续快)==="
rsync -az "$NAS:/volume1/stock/A股数据/stock_info/" "$LOCAL/A股数据/stock_info/" || echo " stock_info pull warn"
rsync -az "$NAS:/volume1/stock/A股数据/日线数据/daily/" "$LOCAL/A股数据/日线数据/daily/" || echo " daily pull warn"
rsync -az "$NAS:/volume1/stock/minute_kline/15min/" "$LOCAL/minute_kline/15min/" || echo " 15min pull warn"
rsync -az "$NAS:/volume1/stock/sanguo_vnpy/data/" "$LOCAL/sanguo_vnpy/data/" || echo " vnpy data pull warn"
fi
echo "=== 2. 跑 v1 增量更新(STOCK_MOUNT=$LOCAL STOCK_LIMIT=${STOCK_LIMIT:-0}==="
cd "$SCRIPT_DIR"
python3 daily_all_update.py "$@"
echo "=== 3. rsync 推 本地 → NAS ==="
rsync -az "$LOCAL/A股数据/日线数据/daily/" "$NAS:/volume1/stock/A股数据/日线数据/daily/"
rsync -az "$LOCAL/minute_kline/15min/" "$NAS:/volume1/stock/minute_kline/15min/"
rsync -az "$LOCAL/sanguo_vnpy/data/" "$NAS:/volume1/stock/sanguo_vnpy/data/"
echo "=== 完成 $(date) ==="