Files
boc/scripts/restore.sh
T

51 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# BOC Database Restore Script
# Återställer från senaste backup
BACKUP_DIR="/opt/backups/boc"
if [ $# -eq 0 ]; then
# Hitta senaste backup
LATEST_BOC=$(ls -t "$BACKUP_DIR"/boc_*.sql.gz 2>/dev/null | head -1)
LATEST_LEDGER=$(ls -t "$BACKUP_DIR"/ledger_*.sql.gz 2>/dev/null | head -1)
else
LATEST_BOC="$1"
LATEST_LEDGER="${1/boc_/ledger_}"
fi
if [ -z "$LATEST_BOC" ] || [ ! -f "$LATEST_BOC" ]; then
echo "No backup found!"
exit 1
fi
echo "Restoring from: $LATEST_BOC"
# Stoppa BOC
echo "Stopping BOC..."
sudo systemctl stop boc
# Återställ BOC databas
echo "Restoring BOC database..."
gunzip -c "$LATEST_BOC" | psql -h localhost -U boc_app -d boc
# Återställ Ledger databas (om finns)
if [ -n "$LATEST_LEDGER" ] && [ -f "$LATEST_LEDGER" ]; then
echo "Restoring Ledger database..."
gunzip -c "$LATEST_LEDGER" | psql -h localhost -U postgres -d aamos_ledger
fi
# Starta BOC
echo "Starting BOC..."
sudo systemctl start boc
# Verifiera
sleep 3
if curl -sf http://localhost:9094/health > /dev/null; then
echo "Restore successful!"
else
echo "Restore failed - check logs"
exit 1
fi