#!/bin/bash # Refresh STATUS_AUTO.md every 5 minutes so the pipeline can be checked at a # glance without reading logs. Read-only: it never touches the pipeline. ROOT=/home/tanpv/Progs/claude/HW_CFS_raw cd $ROOT TARGET=$(wc -l < outputs/meta/init_both.txt) while true; do N=$(find outputs/Pgb2x -name '*.npy' 2>/dev/null | wc -l) ALIVE=$(ps -u tanpv -o cmd --no-headers | grep -c "[r]un_overnight.sh") { echo "# Trạng thái tự động — $(date '+%Y-%m-%d %H:%M:%S')" echo echo "Supervisor: $([ "$ALIVE" -gt 0 ] && echo 'ĐANG CHẠY' || echo 'ĐÃ DỪNG')" echo echo "| Hạng mục | Trạng thái |" echo "|---|---|" echo "| STAGE 1 · trích pgb | **$N / $TARGET** ($(( 100*N/TARGET ))%) |" for f in "Cube/pgb_weekly.npz|STAGE 2 · đặc trưng cao không" \ "AI_Results/exp_features.json|STAGE 3 · biến & lớp mô hình" \ "AI_Results/bcsd.json|STAGE 4 · downscaling D0/D1/D2"; do p=${f%%|*}; n=${f##*|} [ -s "outputs/$p" ] && echo "| $n | XONG |" || echo "| $n | chờ |" done echo echo "Kết quả (khi có): \`outputs/AI_Results/exp_features.json\`, \`outputs/AI_Results/bcsd.json\`" echo echo "## Nhật ký" echo '```' tail -25 logs/overnight.log 2>/dev/null echo '```' echo "## Lỗi gần nhất (nếu có)" echo '```' grep -h "FAILED\|Error\|Traceback" logs/pgbnas_*.err logs/overnight.log 2>/dev/null | tail -8 echo '```' } > STATUS_AUTO.md.tmp && mv STATUS_AUTO.md.tmp STATUS_AUTO.md [ "$ALIVE" -eq 0 ] && sleep 900 || sleep 300 done