26 lines
1.0 KiB
Bash
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"
|