42 lines
1.1 KiB
Bash
Executable File
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"
|