#!/bin/bash
# backup-uploads.sh — Daily backup of /var/uploads/mkl/
#
# Keeps 14 daily snapshots as compressed tarballs.
# Install: sudo crontab -e → 0 2 * * * /var/www/html/mkl/scripts/backup-uploads.sh
#
# Restore example:
#   tar -xzf /var/backups/mkl-uploads/uploads-2026-04-14.tar.gz -C /var/uploads/mkl/

set -euo pipefail

BACKUP_DIR="/var/backups/mkl-uploads"
SOURCE_DIR="/var/uploads/mkl"
DATE=$(date +%Y-%m-%d)
KEEP_DAYS=14

mkdir -p "$BACKUP_DIR"

# Create compressed backup
tar -czf "$BACKUP_DIR/uploads-$DATE.tar.gz" -C "$(dirname "$SOURCE_DIR")" "$(basename "$SOURCE_DIR")"

# Prune old backups
find "$BACKUP_DIR" -name "uploads-*.tar.gz" -mtime +$KEEP_DAYS -delete

echo "[$(date)] Backup complete: $BACKUP_DIR/uploads-$DATE.tar.gz ($(du -sh "$BACKUP_DIR/uploads-$DATE.tar.gz" | cut -f1))"
