Newer
Older
homeassistant-infra / scripts / restore-backup.sh
#!/bin/bash
#
# Skrypt do przywracania backupu Home Assistant
# Użycie: ./restore-backup.sh <backup_file> [test|prod]
#

set -e

BACKUP_FILE="$1"
ENVIRONMENT="${2:-prod}"

if [ -z "$BACKUP_FILE" ]; then
    echo "❌ Użycie: $0 <backup_file> [test|prod]"
    echo ""
    echo "Dostępne backupy:"
    ls -lh ./backups/*.tar.gz 2>/dev/null || echo "  Brak backupów"
    exit 1
fi

if [ ! -f "$BACKUP_FILE" ]; then
    echo "❌ Plik nie istnieje: $BACKUP_FILE"
    exit 1
fi

if [ "$ENVIRONMENT" = "test" ]; then
    TARGET_IP="192.168.50.210"
    TARGET_NAME="TEST"
elif [ "$ENVIRONMENT" = "prod" ]; then
    TARGET_IP="192.168.50.211"
    TARGET_NAME="PROD"
else
    echo "❌ Nieznane środowisko: $ENVIRONMENT"
    exit 1
fi

echo "======================================"
echo "♻️  Przywracanie backupu"
echo "======================================"
echo "Backup: $BACKUP_FILE"
echo "Środowisko: $TARGET_NAME ($TARGET_IP)"
echo "======================================"
echo ""

read -p "⚠️  To NADPISZE aktualną konfigurację! Kontynuować? (tak/nie): " confirm
if [ "$confirm" != "tak" ]; then
    echo "❌ Anulowano"
    exit 0
fi

echo ""
echo "📤 Wysyłanie backupu do $TARGET_NAME..."
cat "$BACKUP_FILE" | sshpass -p "QWer!@34" ssh -o StrictHostKeyChecking=no root@${TARGET_IP} "cd /root && tar xzf -"

echo "♻️  Restart Home Assistant..."
sshpass -p "QWer!@34" ssh -o StrictHostKeyChecking=no root@${TARGET_IP} \
    "ha core restart" 2>/dev/null || \
    sshpass -p "QWer!@34" ssh -o StrictHostKeyChecking=no root@${TARGET_IP} \
    "systemctl restart home-assistant@homeassistant.service" || true

echo ""
echo "✅ Backup przywrócony pomyślnie!"
echo ""
echo "🌐 Sprawdź: http://${TARGET_IP}:8123"
echo "======================================"