Files

26 lines
1.0 KiB
Bash

#!/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"