From defa0525931d081fdabe98298fb36a2b6ac7ca12 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 9 Mar 2026 12:07:06 +0800 Subject: [PATCH] Add script to schedule weekly Monday midnight run --- setup_weekly_cron.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 setup_weekly_cron.sh diff --git a/setup_weekly_cron.sh b/setup_weekly_cron.sh new file mode 100755 index 0000000..dc8cddb --- /dev/null +++ b/setup_weekly_cron.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PYTHON_BIN="$(command -v python3 || true)" + +if [[ -z "${PYTHON_BIN}" ]]; then + echo "Error: python3 not found in PATH." + exit 1 +fi + +LOG_FILE="${PROJECT_DIR}/weekly_main.log" +CRON_CMD="cd ${PROJECT_DIR} && ${PYTHON_BIN} ${PROJECT_DIR}/main.py >> ${LOG_FILE} 2>&1" +CRON_JOB="0 0 * * 1 ${CRON_CMD}" + +CURRENT_CRON="$(crontab -l 2>/dev/null || true)" + +if grep -Fq "${CRON_CMD}" <<< "${CURRENT_CRON}"; then + echo "Cron job already exists:" + echo "${CRON_JOB}" + exit 0 +fi + +{ + [[ -n "${CURRENT_CRON}" ]] && echo "${CURRENT_CRON}" + echo "${CRON_JOB}" +} | crontab - + +echo "Cron job installed successfully:" +echo "${CRON_JOB}" +echo "Log file: ${LOG_FILE}"