feat(vol_breakout): 15m 현물 롱 라이브·모니터·cron 운영 추가
vol_breakout 멀티종목 tick, vol_live HTML 모니터, 마감 봉만 저장하는 캔들 다운로드, 텔레그램 체결 알림, cron/watch 감시 스크립트 및 테스트를 포함한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
88
scripts/install_crontab.sh
Executable file
88
scripts/install_crontab.sh
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
# Bithumb cron 등록 — 기존 crontab에 BITHUMB 블록 병합/갱신
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
MARKER_BEGIN="# BITHUMB vol_breakout cron (begin)"
|
||||
MARKER_END="# BITHUMB vol_breakout cron (end)"
|
||||
EXAMPLE="${ROOT}/scripts/crontab.bithumb.example"
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Usage: $(basename "$0") [--apply|--show|--remove]
|
||||
|
||||
--show 등록될 cron 블록만 출력 (기본)
|
||||
--apply crontab에 BITHUMB 블록 병합 후 설치
|
||||
--remove crontab에서 BITHUMB 블록 제거
|
||||
|
||||
환경 변수:
|
||||
BITHUMB_PYTHON cron에서 사용할 python3 (예: ~/opt/anaconda3/envs/coin/bin/python3)
|
||||
|
||||
로그:
|
||||
data/common/download_cron.log
|
||||
data/spot/operations/vol_breakout_cron.log
|
||||
data/spot/operations/vol_monitor_cron.log
|
||||
EOF
|
||||
}
|
||||
|
||||
render_block() {
|
||||
{
|
||||
echo "$MARKER_BEGIN"
|
||||
sed "s|/Users/dsyoon/workspace/bithumb|${ROOT}|g" "$EXAMPLE" \
|
||||
| grep -v '^#' | grep -v '^[[:space:]]*$'
|
||||
echo "$MARKER_END"
|
||||
}
|
||||
}
|
||||
|
||||
strip_block() {
|
||||
awk -v b="$MARKER_BEGIN" -v e="$MARKER_END" '
|
||||
$0 == b { skip=1; next }
|
||||
$0 == e { skip=0; next }
|
||||
skip { next }
|
||||
/^# BITHUMB/ { next }
|
||||
/bithumb\/scripts\/(00_run_download_cron|3_run_vol_breakout_cron|3_run_vol_monitor_cron|3_run_watch_cron)\.sh/ { next }
|
||||
{ print }
|
||||
'
|
||||
}
|
||||
|
||||
ensure_dirs() {
|
||||
mkdir -p \
|
||||
"${ROOT}/data/common" \
|
||||
"${ROOT}/data/spot/operations" \
|
||||
"${ROOT}/docs/spot/3_operations"
|
||||
}
|
||||
|
||||
ACTION="${1:---show}"
|
||||
case "$ACTION" in
|
||||
--show)
|
||||
ensure_dirs
|
||||
render_block
|
||||
;;
|
||||
--apply)
|
||||
ensure_dirs
|
||||
chmod +x "${ROOT}/scripts/"*.sh 2>/dev/null || true
|
||||
tmp="$(mktemp)"
|
||||
crontab -l 2>/dev/null | strip_block > "$tmp" || true
|
||||
render_block >> "$tmp"
|
||||
crontab "$tmp"
|
||||
rm -f "$tmp"
|
||||
echo "crontab installed. 확인: crontab -l"
|
||||
;;
|
||||
--remove)
|
||||
tmp="$(mktemp)"
|
||||
if crontab -l 2>/dev/null | strip_block > "$tmp"; then
|
||||
crontab "$tmp"
|
||||
echo "BITHUMB cron block removed."
|
||||
else
|
||||
echo "crontab empty or not found."
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
;;
|
||||
*)
|
||||
usage >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user