#!/bin/bash set -euo pipefail # BOC Database Backup Script # Körs varje timme via cron BACKUP_DIR="/opt/backups/boc" RETENTION_DAYS=30 TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="$BACKUP_DIR/boc_$TIMESTAMP.sql.gz" # Skapa backup-katalog mkdir -p "$BACKUP_DIR" # Backup BOC databas echo "[$(date)] Starting BOC backup..." pg_dump -h localhost -U boc_app -d boc --no-password | gzip > "$BACKUP_FILE" # Verifiera backup if [ -s "$BACKUP_FILE" ]; then echo "[$(date)] Backup successful: $BACKUP_FILE ($(du -h "$BACKUP_FILE" | cut -f1))" else echo "[$(date)] Backup failed!" exit 1 fi # Backup Ledger databas LEDGER_BACKUP="$BACKUP_DIR/ledger_$TIMESTAMP.sql.gz" pg_dump -h localhost -U postgres -d aamos_ledger | gzip > "$LEDGER_BACKUP" if [ -s "$LEDGER_BACKUP" ]; then echo "[$(date)] Ledger backup successful: $LEDGER_BACKUP" else echo "[$(date)] Ledger backup failed!" fi # Rensa gamla backups find "$BACKUP_DIR" -name "boc_*.sql.gz" -mtime +$RETENTION_DAYS -delete find "$BACKUP_DIR" -name "ledger_*.sql.gz" -mtime +$RETENTION_DAYS -delete echo "[$(date)] Backup complete. Retention: $RETENTION_DAYS days"