UniFi Network Application Docker-Setup mit Update-, Backup- und Restore-Skripten
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# Stellt ein Backup wieder her.
|
||||
#
|
||||
# ./restore.sh backups/unifi-full-backup_XXXX.tar.gz
|
||||
# Komplett-Restore: stoppt die Container, ersetzt ./data durch den
|
||||
# Stand aus dem Archiv und startet die Container wieder.
|
||||
#
|
||||
# ./restore.sh backups/autobackup_XXXX/datei.unf
|
||||
# Legt die .unf-Datei in den Autobackup-Ordner der UniFi-App, sodass sie
|
||||
# in der Weboberfläche unter Einstellungen -> System -> Backups
|
||||
# ausgewählt und wiederhergestellt werden kann.
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "Aufruf: $0 <backup-datei>"
|
||||
echo " z.B.: $0 backups/unifi-full-backup_2026-07-26_20-00-00.tar.gz"
|
||||
echo " oder: $0 backups/autobackup_2026-07-26_20-00-00/autobackup_9.1.120.unf"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE="$1"
|
||||
if [[ ! -f "$FILE" ]]; then
|
||||
echo "Datei nicht gefunden: $FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$FILE" in
|
||||
*.tar.gz)
|
||||
echo "ACHTUNG: Das aktuelle ./data-Verzeichnis wird ersetzt!"
|
||||
read -r -p "Fortfahren? [j/N] " answer
|
||||
[[ "$answer" =~ ^[jJyY]$ ]] || { echo "Abgebrochen."; exit 1; }
|
||||
|
||||
echo "==> Container stoppen..."
|
||||
docker-compose down
|
||||
|
||||
if [[ -d data ]]; then
|
||||
SAFETY="data.vor-restore.$(date +%Y-%m-%d_%H-%M-%S)"
|
||||
echo "==> Aktuelles ./data wird aufbewahrt als ./$SAFETY"
|
||||
mv data "$SAFETY"
|
||||
fi
|
||||
|
||||
echo "==> Backup entpacken..."
|
||||
tar xzf "$FILE"
|
||||
|
||||
echo "==> Container starten..."
|
||||
docker-compose up -d
|
||||
echo "==> Fertig. Wenn alles läuft, kann ./$SAFETY gelöscht werden."
|
||||
;;
|
||||
*.unf)
|
||||
DEST="./data/unifi/data/backup/autobackup"
|
||||
mkdir -p "$DEST"
|
||||
cp "$FILE" "$DEST/"
|
||||
echo "==> $(basename "$FILE") wurde nach $DEST kopiert."
|
||||
echo "Wiederherstellen in der Weboberfläche:"
|
||||
echo " Einstellungen -> System -> Backups -> Wiederherstellen"
|
||||
echo "(Bei einer Neuinstallation kann die Datei auch direkt im"
|
||||
echo " Einrichtungs-Assistenten unter 'Restore from backup' gewählt werden.)"
|
||||
;;
|
||||
*)
|
||||
echo "Unbekanntes Format. Erwartet: *.tar.gz (Komplett) oder *.unf (UniFi-Backup)"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user