NEWS
[HowTo] ioBroker Restore unter Linux durchführen
-
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Irgendwas ist da "faul".
Ja ... hast du selber gemacht :)
Also :
dein Backup liegt in docker/iobroker/backups und du hast den Mount aber auf docker/iobroker und deshalb findet er nichts und dann kommt diese Meldung .
Ich würde aber kein Unterordner machen .
Lege das Backup in docker/iobroker , dann ist alles gut .....Nur mal so ... Lese mal das Zitat richtig durch , das war der Link von oben :
Zitat von Andre:
Der Clou an der Sache: Seit Version 4.1.0 des ioBroker Container Images ist es möglich vor dem ersten Start ein Backupfile in das noch leere Verzeichnis, welches in den Container als /opt/iobroker eingebunden wird, zu kopieren. Das Backup wird dann vom Startup-Script des Container erkannt und für die Wiederherstellung verwendet. Vollautomatisch.
Moin,
okay, das Backup liegt nun hier.

Dann habe ich den Container einmal komplett gelöscht und neu konfiguriert:
Dort mounte ich das oben genannte Verzeichnis nach /opt/iobroker

Nach dem Starten sehe ich im Protokoll folgendes:

Gefühlt sieht das ja nun erstmal nicht "so übel" aus...
Und nun?Die <IPNAS>:8081 wirft einen ERR_EMPTY_RESPONE.
Vermutlich muss ich per Terminal noch ein bisschen was machen, oder?Ich bin erstmal happy dass das funktionieren könnte.
So sieht es gerade aus:

-
Moin,
okay, das Backup liegt nun hier.

Dann habe ich den Container einmal komplett gelöscht und neu konfiguriert:
Dort mounte ich das oben genannte Verzeichnis nach /opt/iobroker

Nach dem Starten sehe ich im Protokoll folgendes:

Gefühlt sieht das ja nun erstmal nicht "so übel" aus...
Und nun?Die <IPNAS>:8081 wirft einen ERR_EMPTY_RESPONE.
Vermutlich muss ich per Terminal noch ein bisschen was machen, oder?Ich bin erstmal happy dass das funktionieren könnte.
So sieht es gerade aus:

@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Und nun?
Warten wie schon erwähnt , weiteres siehst du im Log , wenn es fertig ist .
-
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Und nun?
Warten wie schon erwähnt , weiteres siehst du im Log , wenn es fertig ist .
Ich habe den Log oben noch mal ergänzt, soweit in Ordnung?
-
Ich habe den Log oben noch mal ergänzt, soweit in Ordnung?
Ja , schau im Protokoll da siehst du mehr
-
Ja , schau im Protokoll da siehst du mehr
hm, also zumindest im Protokoll per Docker-Container nicht wirklich... Ist seit ca. 30 Minuten keine Veränderung.

-
hm, also zumindest im Protokoll per Docker-Container nicht wirklich... Ist seit ca. 30 Minuten keine Veränderung.

@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Ist seit ca. 30 Minuten keine Veränderung
Das dauert .
Gehe mal aus dem iobroker Docker raus ... und dann wieder rein , wenn du meinst es bleibt im Protokoll stehen
-
hm, also zumindest im Protokoll per Docker-Container nicht wirklich... Ist seit ca. 30 Minuten keine Veränderung.

@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
hm, also zumindest im Protokoll per Docker-Container nicht wirklich... Ist seit ca. 30 Minuten keine Veränderung.
in diesem LOG hört es an der Stelle immer auf. Man sieht aber dass das Renaming vom alten Hostnamen zum neuen nicht geklappt hat und deshalb die Instanzen in 100Jahren nicht starten werden(ist soweit erstmal 'normal', weil es hierzu ein issue gibt). Um das zu fixen, ab auf die Containerkonsole:
pkill -u iobroker# stoppt iobrokeriobroker host alter_hostname- alternativ bei Single-Hostsystem:
iobroker host this
- alternativ bei Single-Hostsystem:
- Neustart Container
Danach ist der admin unter ip:8081 erreichbar, jedoch installieren sich jetzt erst die Adapter und müssen anschliessend auch manuell gestartet werden. Diesen Fortschritt kann man auf der Konsole mit
tail -f log/*curr*verfolgen. Das kann dauern, wenn sich nichts mehr ändert können die einzelnen Instanzen aus der Gui gestartet werden -
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
hm, also zumindest im Protokoll per Docker-Container nicht wirklich... Ist seit ca. 30 Minuten keine Veränderung.
in diesem LOG hört es an der Stelle immer auf. Man sieht aber dass das Renaming vom alten Hostnamen zum neuen nicht geklappt hat und deshalb die Instanzen in 100Jahren nicht starten werden(ist soweit erstmal 'normal', weil es hierzu ein issue gibt). Um das zu fixen, ab auf die Containerkonsole:
pkill -u iobroker# stoppt iobrokeriobroker host alter_hostname- alternativ bei Single-Hostsystem:
iobroker host this
- alternativ bei Single-Hostsystem:
- Neustart Container
Danach ist der admin unter ip:8081 erreichbar, jedoch installieren sich jetzt erst die Adapter und müssen anschliessend auch manuell gestartet werden. Diesen Fortschritt kann man auf der Konsole mit
tail -f log/*curr*verfolgen. Das kann dauern, wenn sich nichts mehr ändert können die einzelnen Instanzen aus der Gui gestartet werden@fastfoot ich glaube das sieht alles sehr gut aus.
Die Seite war / ist erreichbar unter 192.168.178.5:8081, auf der Terminal-Ebene habe ich dann den Befehl "tail -f log/curr" ausgeführt, da ist auch reges treiben....
Ich warte ab!
Danke euch beiden, @fastfoot und @Glasfaser . Ich berichte weiter.
-
@fastfoot ich glaube das sieht alles sehr gut aus.
Die Seite war / ist erreichbar unter 192.168.178.5:8081, auf der Terminal-Ebene habe ich dann den Befehl "tail -f log/curr" ausgeführt, da ist auch reges treiben....
Ich warte ab!
Danke euch beiden, @fastfoot und @Glasfaser . Ich berichte weiter.
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Die Seite war / ist erreichbar unter 192.168.178.5:8081,
Hast du jetzt noch gewartet oder wie @fastfoot geschrieben hat es durchgeführt !?
-
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Die Seite war / ist erreichbar unter 192.168.178.5:8081,
Hast du jetzt noch gewartet oder wie @fastfoot geschrieben hat es durchgeführt !?
@glasfaser sagte in [HowTo] ioBroker Restore unter Linux durchführen:
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Die Seite war / ist erreichbar unter 192.168.178.5:8081,
Hast du jetzt noch gewartet oder wie @fastfoot geschrieben hat es durchgeführt !?
er hat meine Anweisungen befolgt, wie geschrieben täte sich da in 100 Jahren nichts da die Hostnamen nicht stimmen. Beschäftige mich gerade sehr intensiv damit :-)
-
@glasfaser sagte in [HowTo] ioBroker Restore unter Linux durchführen:
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Die Seite war / ist erreichbar unter 192.168.178.5:8081,
Hast du jetzt noch gewartet oder wie @fastfoot geschrieben hat es durchgeführt !?
er hat meine Anweisungen befolgt, wie geschrieben täte sich da in 100 Jahren nichts da die Hostnamen nicht stimmen. Beschäftige mich gerade sehr intensiv damit :-)
@fastfoot und @Glasfaser
naja, am Ende habe ich ja eine gute Stunde gewartet, da tat sich aber nichts mehr.
Ich bin dann sehr genau nach der Anleitung von @fastfoot vorgegangen: Die Adapter sind alle wieder da und es funktioniert anscheinend auch alles...
Ich kann mich nur bedanken, wirklich!
-
@glasfaser sagte in [HowTo] ioBroker Restore unter Linux durchführen:
@dasmoritz sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Die Seite war / ist erreichbar unter 192.168.178.5:8081,
Hast du jetzt noch gewartet oder wie @fastfoot geschrieben hat es durchgeführt !?
er hat meine Anweisungen befolgt, wie geschrieben täte sich da in 100 Jahren nichts da die Hostnamen nicht stimmen. Beschäftige mich gerade sehr intensiv damit :-)
Ok , habe ich wohl überlesen ... ist wohl extremer geworden .
Wollte aber erstmal noch warten , sonst wäre es auch so wie du schon geschrieben hast vorgeschlagen , wollte jetzt nicht die Keule mit " pkill -u iobroker ..... " sofort machen .
-
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.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 statusdie 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: redisSteht 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 nowAls 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 htopNachdem dies erfolgt ist, kann es zu dem eigentlichen Restore kommen.
Restore:
Hier gibt es auch 2 Möglichkeiten:
1. Automatischer Restore mit Backitup
Wir fangen erst einmal mit der Variante des automatischen Restore mittels 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 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.
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 Backitup und geht in den Tab „Wiederherstellen“.
Dort stellt ihr die „Backup-Quelle“ auf Lokal und drückt im Anschluss speichern.
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.
Nach der Auswahl bekommt ihr einen Hinweis, dass iobroker für den Restore gestoppt und im Anschluss wieder gestartet wird.

Hier habt ihr den eigentlichen Wiederherstellungsvorgang gestartet.

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

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

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.
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 startNun 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 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.

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/backupsAuch 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 stopIm Anschluss prüft bitte, ob alles gestoppt ist mit folgenden Befehlen:
iobroker statusWenn 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 Backitup benötigt, da diese speziell mit 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 startAuch 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.
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 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 und freue mich auf euer Feedback.
VG
simatec -
@simatec Hallo,
ich bin gerade dabei von windows umzustellen auf linux unter Docker.
Hier geht der Backitup nicht. (restore cancelled (Exit99).
Ist das bekannt? -
@ben1983 Kannst du bitte ein paar mehr Infos geben?
Etwas mehr Debug Log und welchen Docker Container verwendest du? -
@simatec verwende den latest von buanet-iobroker.
habe gerade in den log geschaut, da steht absolut NICHTS drin zum backup
Habe es genau16:10 gestartet und logeinträge kommen erst wieder 16:11 wenn er neu startet. -
@simatec verwende den latest von buanet-iobroker.
habe gerade in den log geschaut, da steht absolut NICHTS drin zum backup
Habe es genau16:10 gestartet und logeinträge kommen erst wieder 16:11 wenn er neu startet. -
@ben1983 Im latest ist der Fix noch nicht drin, der ein Problem mit node14 verursacht.
Bitte nimm aktuell den Beta Container@simatec der steht aber auf js.controler 3.
Dann müsste ich ja später wieder updaten.
Kann ich es auf dem stable belassen und warten, bis der andere Fertig ist?
Ps. kannman denn wenigstens backups lauffähigh erstellen, welche dann mit dem fix restored werden können?
Oder einfach den gemounteden Ordner nutzen? -
@simatec der steht aber auf js.controler 3.
Dann müsste ich ja später wieder updaten.
Kann ich es auf dem stable belassen und warten, bis der andere Fertig ist?
Ps. kannman denn wenigstens backups lauffähigh erstellen, welche dann mit dem fix restored werden können?
Oder einfach den gemounteden Ordner nutzen? -