diff --git a/scripts/nas_sync/run_5m_standalone.sh b/scripts/nas_sync/run_5m_standalone.sh new file mode 100644 index 0000000..412ad7c --- /dev/null +++ b/scripts/nas_sync/run_5m_standalone.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# run_5m_standalone.sh — 5m 下载脱离主容器(2026-08-22 治本) +# +# 背景:DSM 任务原用 `docker exec sanguo_vnpy_v2` 跑 5m,进程活在主容器里, +# 任何 git push → CI nas-deploy 重启主容器 = 杀掉在跑的 5m(08-20 两案 + 08-22 +# 增量段被杀,系统性脆弱三案实锤)。 +# +# 修法:改用独立一次性容器(`docker run --rm`)跑**同一镜像同 tag**(主容器用 +# 什么版本它就跑什么版本,CI 部署自动跟踪),主容器重启/重建永不波及本进程。 +# 挂载与主容器完全一致(/volume1/stock + 代码目录),脚本内部单实例锁 +# bs_5m.lock(pid 活性检测)不变,与手动补跑互斥语义保持。 +# +# 部署位:NAS /volume1/stock/sanguo_5m/run_5m.sh(宿主文件,CI 不覆盖; +# 改本文件后需 scp -O 手动同步——DSM 无 SFTP 子系统)。 +# DSM 任务(00:05 那条)命令改为: bash /volume1/stock/sanguo_5m/run_5m.sh +# +# 注意:镜像 tag 若将来基建重建改名,这里要跟着改(与主容器 compose 同源)。 +set -u +DOCKER=/var/packages/Docker/target/usr/bin/docker +LOG=/volume1/stock/sanguo_5m/cron.log + +{ + echo "=== $(date '+%F %T') standalone-container 5m run start ===" + "$DOCKER" run --rm --entrypoint python \ + -v /volume1/stock:/volume1/stock \ + -v /volume1/homes/admin/.sanguo_projects/sanguo_vnpy_v2:/app:ro \ + sanguo_vnpy_v2:lock-aligned \ + /app/scripts/data_platform/bs_5m_eod.py + rc=$? + echo "=== $(date '+%F %T') standalone-container 5m run exit=$rc ===" +} >> "$LOG" 2>&1 +exit "${rc:-0}"