#!/bin/bash # Manual script to setup/restart cron jobs # Use this if cron wasn't started properly by the docker entrypoint echo "🔧 Setting up cron jobs..." # Ensure cron service is running if command -v service &> /dev/null; then service cron start 2>/dev/null || true fi # Set up daily backup cron job (runs at 2 AM daily) echo "⏰ Setting up daily backup cron job (2 AM)..." echo "0 2 * * * cd /app && /usr/local/bin/node backup-db.mjs >> /app/data/backup.log 2>&1" > /etc/cron.d/backup-cron chmod 0644 /etc/cron.d/backup-cron # Set up daily due date reminders cron job (runs at 3 AM daily) echo "⏰ Setting up daily due date reminders cron job (3 AM)..." echo "0 3 * * * cd /app && /usr/local/bin/node send-due-date-reminders.mjs >> /app/data/reminders.log 2>&1" > /etc/cron.d/reminders-cron chmod 0644 /etc/cron.d/reminders-cron # Combine both cron jobs into crontab cat /etc/cron.d/backup-cron /etc/cron.d/reminders-cron > /tmp/combined-cron.tmp crontab /tmp/combined-cron.tmp rm /tmp/combined-cron.tmp # Verify cron jobs are installed echo "" echo "✅ Cron jobs installed:" crontab -l # Check if cron daemon is running echo "" if pgrep -x "cron" > /dev/null || pgrep -x "crond" > /dev/null; then echo "✅ Cron daemon is running" else echo "⚠️ Cron daemon is NOT running. Starting it..." if command -v cron &> /dev/null; then cron echo "✅ Cron daemon started" elif command -v crond &> /dev/null; then crond echo "✅ Cron daemon started" else echo "❌ Could not start cron daemon" exit 1 fi fi echo "" echo "🎉 Cron setup complete!"