Files

42 lines
1.1 KiB
Bash
Executable File

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