Add script to schedule weekly Monday midnight run

This commit is contained in:
leo 2026-03-09 12:07:06 +08:00
parent 88ad97d0e0
commit defa052593

31
setup_weekly_cron.sh Executable file
View File

@ -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}"