Files
proxmox/scripts/maintenance/schedule-daily-weekly-cron.sh
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
2026-04-12 06:12:20 -07:00

51 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Schedule daily/weekly maintenance checks (O-1, O-2, O-3). Run from project root.
# Usage: bash scripts/maintenance/schedule-daily-weekly-cron.sh [--install|--show]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
INSTALL_ROOT="${CRON_PROJECT_ROOT:-$PROJECT_ROOT}"
CHECKS_SCRIPT="$INSTALL_ROOT/scripts/maintenance/daily-weekly-checks.sh"
LOG_DIR="$INSTALL_ROOT/logs"
CRON_DAILY="0 8 * * * cd $INSTALL_ROOT && bash $CHECKS_SCRIPT daily >> $LOG_DIR/daily-weekly-checks.log 2>&1"
CRON_WEEKLY="0 9 * * 0 cd $INSTALL_ROOT && bash $CHECKS_SCRIPT weekly >> $LOG_DIR/daily-weekly-checks.log 2>&1"
validate_install_root() {
if [[ "$INSTALL_ROOT" == /tmp/* ]]; then
echo "Refusing to install cron from ephemeral path: $INSTALL_ROOT"
echo "Set CRON_PROJECT_ROOT to a persistent checkout on the host, then rerun."
exit 1
fi
if [[ ! -f "$CHECKS_SCRIPT" ]]; then
echo "Checks script not found at: $CHECKS_SCRIPT"
echo "Set CRON_PROJECT_ROOT to the host path that contains scripts/maintenance/daily-weekly-checks.sh."
exit 1
fi
}
case "${1:-}" in
--install)
validate_install_root
mkdir -p "$LOG_DIR"
{
crontab -l 2>/dev/null | grep -v 'daily-weekly-checks.sh' || true
echo "$CRON_DAILY"
echo "$CRON_WEEKLY"
} | crontab -
echo "Installed daily (08:00) and weekly (Sun 09:00):"
echo " $CRON_DAILY"
echo " $CRON_WEEKLY"
;;
--show)
validate_install_root
echo "Daily (O-1, O-2): $CRON_DAILY"
echo "Weekly (O-3): $CRON_WEEKLY"
;;
*)
echo "Usage: $0 [--install|--show]"
exit 0
;;
esac