Skip to content

[HowTo] Restore auf Linux Distributionen

simatec edited this page Jan 10, 2024 · 2 revisions

Wie führe ich einen Restore meiner ioBroker Installation auf einem Linux-System richtig durch??

Vorwort

Da ich in der letzten Zeit immer wieder feststellen musste, dass sich viele User mit einem Restore sehr schwer tun, möchte ich hier mal eine Schritt für Schritt Anleitung für den Restore nach einem Crash, oder auch nach einem Hardwarewechsel, Systemwechsel oder sonstiges niederschreiben.

Grundsätzlich kann man im Vorfeld aber eines sagen, ein Restore ist bei richtiger Ausführung in wenigen Minuten erledigt und keiner braucht davor Angst haben.

Am Ende sind alle Daten wieder da und man hat ein neues System. Aber gut fangen wir erstmal mit Grundlagen an, bevor wir tiefer einsteigen.

Zurück zum Anfang


Vorbereitung

Für die Vorbereitung gehe ich erst einmal davon aus, dass ihr bereits eine lauffähige ioBroker Installation habt.

Um dies hinzubekommen, gibt es 2 Wege. Entweder ihr installiert auf euren System ein fertiges Image aus dem Downloadbereich, oder ihr setzt euch ein eigenes Linux OS auf und installiert ioBroker nach dieser Anleitung.

Was ist nun zu tun??

Wenn euer altes System die States und/oder Objekte in Redis gespeichert hatte, sollte ihr mit folgenden Befehlen erstmal auch das neue System mit dem Redis-Server ausstatten.

Solltetet ihr euch nicht sicher sein, ob ihr Redis verwendet und ihr noch Zugriff auf das alte System haben, dann bekommt ihr mit dem Befehl iobroker status die benötigten Informationen.

Die Ausgabe sieht bei einer Verwendung von Redis wie folgt aus:

iobroker is running on this host.

At least one iobroker host is running.

Objects type: redis
States  type: redis

Steht in Objects type und/oder States type "redis", müsst ihr zwingend auf dem neuen System den Redis Server installieren. Steht hingehen bei beiden Typen "file", wird der Redis Server nicht benötigt.

Solltet ihr keinen Zugriff mehr auf das alte System haben und ihr wisst nicht, was da vorher genau konfiguriert war, dann installiert auf jeden Fall den Redis-Server im Vorfeld.

So installiert ihr Redis:

Dafür geht ihr per Putty in das Terminal und führt folgende Befehle aus:

sudo apt-get update
sudo apt-get install redis-server
sudo usermod -a -G redis iobroker
sudo reboot now

Als nächstes sollte man den Installer Fix mal durchlaufen lassen, falls irgendwo noch nicht alle Rechte auf dem System passen sollten. Dieser Schritt ist nur eine Empfehlung und ist nicht zwingend notwendig. Ich führe diesen Befehl allerdings immer im Vorfeld aus.

curl -sL https://iobroker.net/fix.sh | bash –

Nun installieren wir uns noch das kleine Tool "htop". Hiermit kann man sehr gut alle laufenden Prozesse einsehen, was nicht nur für den restore Interessant sondern generell sehr nützlich sein kann. Hierfür führt ihr folgenden Befehl aus:

sudo apt-get install htop

Nachdem dies erfolgt ist, kann es zu dem eigentlichen Restore kommen.

Zurück zum Anfang


Restore

Hier gibt es auch 2 Möglichkeiten:

1. Automatischer Restore mit ioBroker.backitup

Wir fangen erst einmal mit der Variante des automatischen Restore mittels ioBroker.backitup an. Hier sind keinerlei Linux Kenntnisse erforderlich, da das Ganze mit der Weboberfläche von Iobroker erfolgt. Als erstes müsst ihr euch den Adapter ioBroker.backitup installieren. Diesen findet ihr im Reiter unter Adaptern.

Ist die Installation abgeschlossen, legt ihr euer zuvor vom alten System erstelltes „ioBroker Backup“ auf eurem neuen System mit einem sftp Programm wie zum Beispiel FileZilla oder WinSCP in dem Pfad /opt/iobroker/backups ab.

ioBroker.backitup kann auch eine Restore vom NAS, Dropbox oder Google Drive ausführen, aber ich persönlich finde die lokale Variante am sichersten.

Wer da bereits seine Erfahrungen hat, kann dies auch gerne testen, wir bleiben hier in dieser Anleitung aber erstmal lokal.

Wenn ihr das ioBroker Backup erfolgreich abgelegt habt, öffnet ihr nun ioBroker.backitup und geht in den Tab „Wiederherstellen“. Dort stellt ihr die „Backup-Quelle“ auf Lokal und drückt im Anschluss speichern.

restoreTab.JPG

Wer ALLE seine Adapter nach dem restore automatisch starten lassen möchte, der kann hier noch die Option „Start aller Adapter nach dem Restore“ aktivieren und im Anschluss ebenfalls speichern.

Sollte das Backup auf einem anderen Host wiederhergestellt werden, sollte man diese Option nicht wählen und vor dem Start der einzelnen Adapter die IP-Adressen gegebenenfalls anpassen.

Nach dem speichern können über den Button „Backups abrufen“ die vorhandenen Backups auf dem lokalen Pfad abgerufen werden.

Nun sollte euer gerade per FTP kopiertes Backup in der Liste unter „iobroker“ auftauchen. Dieses könnt ihr nun auswählen.

restoreListe.JPG

Nach der Auswahl bekommt ihr einen Hinweis, dass iobroker für den Restore gestoppt und im Anschluss wieder gestartet wird.

restoreStart.JPG

Hier habt ihr den eigentlichen Wiederherstellungsvorgang gestartet.

restore.JPG

In eurem Browser öffnet sich nun ein weiterer Tab, in dem ihr den Wiederherstellungsprozess wie auf der Konsole im WebUI von ioBroker.backitup verfolgen könnt.

restoreWebUI.JPG

Nachdem die Wiederherstellung erfolgreich abgeschlossen wurde, bekommt ihr die Meldung ebenfalls im WebUi des Restores.

restoreWebUI_finish.JPG

Die Wiederherstellung kann je nach Leistung des Systems und Größe der alten ioBroker Installation etwas Zeit brauchen. Im Normalfall sollte der restore nach ca. 10-15 Minuten erledigt und ioBroker automatisch wieder gestartet sein.

restoreFinish.JPG

In ganz seltenen Fällen kommt es vor, dass ioBroker nicht automatisch nach Restore startet. Falls dies der Fall ist, könnt ihr den iobroker manuell mit folgende Befehl über die Konsole starten.

iobroker start

Nun sollte euer ioBroker wieder starten und ihr könnt im Reiter „Log“ sehen, dass alle Adapter, die auf eurem alten System installiert waren, gerade neu vom npm installiert werden.

Hier müsst ihr nun geduldig sein und iobroker einfach machen lassen. In den Instanzen könnt ihr sehen, welche Adapter so nach und nach installiert sind. Alle Adapter die noch bei der Installation bzw. in der Warteschleife sind, haben noch kein Icon in den Instanzen. Seit hier bitte geduldig und lasst iobroker ohne neu zu starten einfach machen.

Je nach Größe der Installation und Geschwindigkeit eures Rechners und der Internetverbindung kann dies locker 2-3 Stunden dauern.

Herzlichen Glückwunsch, nun habt ihr ein neu installiertes System mit all euren Einstellungen, Skripten, Visualisierungen usw.

Nun habt ihr mit ioBroker.backitup noch die Möglichkeit weitere Daten wiederherzustellen, falls ihr diese im Vorfeld auch auf eurem alten System gesichert habt. Ihr könnt die Redis-Datenbank, die Zigbee-Datenbank, die mySql-Datenbank und eure History-Daten mit den gleichen Schritten, wie oben beschrieben wiederherstellen.

Die Liste der abgerufenen Backups würde dann wie hier im Beispiel aussehen.

fullListe.JPG

Zurück zum Anfang


2. manueller Restore mit den Terminal Befehlen

Als erstes müssen wir hier über Putty oder ähnliches ein paar Befehle absetzen

Als erstes erstellen wir einen Backup-Ordner:

sudo mkdir /opt/iobroker/backups

Auch hier müsst ihr im Anschluss mit einem sftp Programm wie z.B. FileZilla oder WinSCP euer auf dem alten System erstelltes Backup und gegebenenfalls auch Redis Backup, zigbee Backup usw. in den Ordner /opt/iobroker/backups ablegen.

Wer seine states und Objekte in der Redis DB speichert, sollte hier zuerst die gesicherte Redis Datenbank wiederherstellen. Wer lediglich die states unter Redis laufen hat, braucht dies nicht zwingend im Vorfeld tun.

Ist dies erfolgt, führt stoppt ihr euren ioBroker wie folgt:

iobroker stop

Im Anschluss prüft bitte, ob alles gestoppt ist mit folgenden Befehlen:

iobroker status

Wenn alle Ausgaben korrekt sind und iobroker gestoppt wurde, könnt ihr nun mit folgenden Befehlen den Restore über die Konsole ausführen:

cd /opt/iobroker
iobroker restore <Dateiname eures Backups>

Hierbei ist aber ganz wichtig, dass ihr nur ein ioBroker Backup mit dieser Methode wiederherstellen könnt. Ein Redis-Backup, Zigbee-Backup, mySql-Backup, oder die History-Daten könnt ihr mit dem Befehl nicht herstellen.

Hierfür wird ioBroker.backitup benötigt, da diese speziell mit ioBroker.backitup erstellt wurden.

Dies kann jetzt je nach System ein paar Minuten dauern. Den Fortschritt seht ihr im Terminal. Wenn der Restore abgeschlossen ist, könnt ihr mit folgenden Befehl ioBroker wieder starten:

iobroker start

Auch hier werden nun alle Adapter einzeln von ioBroker über npm neu installiert. Dies kann je nach Größe eurer Installation, eurer Internetgeschwindigkeit und Leistung eures Systems eine Weile dauern. Ihr könnt den Status im Reiter „Log“ verfolgen.

Ihr habt es nun geschafft und euer System neu installiert und alle Einstellungen, Skripte, Visualisierungen usw. wiederhergestellt.

Zurück zum Anfang


Fazit

Grundsätzlich führen beide Varianten zum gleichen Ergebnis. Wer wenig Erfahrungen mit terminal Befehlen hat und sich da unsicher fühlt, der ist mit ioBroker.backitup auf der sicheren Seite.

Wer allerdings genau sehen möchte, was gerade auf seinem System passiert, der sollte die manuelle Variante über die Konsole wählen. Hier sieht man jeden einzelnen Vorgang im Detail im Terminal.

Ich hoffe ich konnte für den einen oder anderen etwas Licht ins Dunkel bringen.

Zurück zum Anfang