#!/bin/bash # ============================================================================== # OnEver Drive — System Database & Metadata Self-Backup Script # Backs up PostgreSQL database and configuration to persistent storage # ============================================================================== set -e BACKUP_DEST="/storage/backups/_system_metadata" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") DB_NAME="onever_drive" RETENTION_DAYS=30 mkdir -p "$BACKUP_DEST" echo "[*] Creating database dump for $DB_NAME..." sudo -u postgres pg_dump "$DB_NAME" | gzip > "$BACKUP_DEST/onever_db_$TIMESTAMP.sql.gz" echo "[*] Backing up configuration files..." tar -czf "$BACKUP_DEST/config_$TIMESTAMP.tar.gz" /etc/nginx/sites-available/onever-drive /etc/systemd/system/onever-backend.service 2>/dev/null || true echo "[*] Pruning old database dumps older than $RETENTION_DAYS days..." find "$BACKUP_DEST" -type f -name "*.gz" -mtime +$RETENTION_DAYS -delete echo "[+] Self-backup completed: $BACKUP_DEST/onever_db_$TIMESTAMP.sql.gz"