NEWS
[HowTo] ioBroker Restore unter Linux durchführen
-
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 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.
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 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 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/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 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 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.
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 sagte:
cd /opt/iobroker
iobroker restore <Dateiname eures Backups>Eine Redis-DB wird ebenfalls wieder hergestellt ?
-
@paul53
Nicht mit dem Befehl. Hier wird nur das reine iobroker Backup behandelt.
Nach dem gleichen Prinzip kann aber auch unter backitup dann Redis, zigbee usw. wiederhergestellt werden.Diese Anleitung bezieht sich aber in erster Linie auf das reine iobroker Backup
-
@simatec sagte:
iobroker start
Auch hier werden nun alle Adapter einzeln von ioBroker über npm neu installiert.Wenn die Objekte in einer Redis-DB gespeichert wurden, muss man dann nicht vorher die DB wieder herstellen ?
-
Da alle Adapter bei diesem restore neu installiert werden, werden auch alle Objekte neu angelegt.
Dementsprechend muss dies nicht zwingend passieren. -
@paul53 sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Wenn die Objekte in einer Redis-DB gespeichert wurden, muss dann nicht vorher die DB wieder herstellen ?
Seh ich auch so.. zuerst die Datenbank, dann der Rest.. aber das ist dann sehr individuell.. man sollte schon wissen, welche man verwendet und wo die ist
-
@simatec sagte:
werden auch alle Objekte neu angelegt.
Dann fehlt aber einiges an Objekten (Skripte, eigene Datenpnkte, ...). Außerdem: Woher weiß ioBroker, welche Adapter zu installieren sind mit welchen Instanzen ?
-
@ilovegym sagte in [HowTo] ioBroker Restore unter Linux durchführen:
@paul53 sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Wenn die Objekte in einer Redis-DB gespeichert wurden, muss dann nicht vorher die DB wieder herstellen ?
Seh ich auch so.. zuerst die Datenbank, dann der Rest.. aber das ist dann sehr individuell.. man sollte schon wissen, welche man verwendet und wo die ist
Sehe ich auch so. User für die diese Anleitung ist werden selten Redis haben und wenn doch, dann haben sie nicht die Objekte in Redis sondern nur die states, da dies ja individuell eingestellt werden muss.
Aber ich kann es gerne noch einmal in der Anleitung als Hinweis aufnehmen
-
-
@paul53 erledigt ...
-
@paul53 sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Woher weiß ioBroker, welche Adapter zu installieren sind mit welchen Instanzen ?
Die Konfiguration der Instanzen befinden sich in dem Backup.
Die dazugehörenden Adapterdateien werden sukzessive in den neuesten Versionen des ausgewählten Repositories installiert.
-
@paul53 sagte in [HowTo] ioBroker Restore unter Linux durchführen:
@simatec sagte:
iobroker start
Auch hier werden nun alle Adapter einzeln von ioBroker über npm neu installiert.Wenn die Objekte in einer Redis-DB gespeichert wurden, muss man dann nicht vorher die DB wieder herstellen ?
Hier noch mal ein Log, in dem zu sehen ist, dass sowohl Objekte als auch states im iobroker backup gesichert werden.
Dementsprechend sollten hier auch die States und Objekte nach dem restore wieder hergestellt werden und auch dann in die Redis db geschrieben werden.
backitup.0 2019-12-02 21:13:22.084 debug (24548) [iobroker/iobroker] host.iobroker-test 2689 objects saved backitup.0 2019-12-02 21:13:22.063 debug (24548) [iobroker/iobroker] host.iobroker-test 2401 states saved
@apollon77
Eventuell kannst du hier noch etwas zu erklären.
Aber so wie ich es verstehe, muss hier vor einem Restore des iobroker Backups nicht zwingend die alte Redis DB wiederhergestellt werden.Wichtig ist nur, dass der Redis Server läuft, wenn das Backup auf einem System mit Redis erstellt wurde.
-
@simatec korrekt
-
Hallo,
vielleicht ist es für Mac User Interessant.
Mein IoBroker läuft auf der aktuellen MacMini Generation.
Habe mal zum Test IoBroker auf meinen MacBook mit Catalina installiert und mit einen Backup aus dem Backit up Adapter wiederhergestellt. Nach 10min lief alles.
Also unter MacOS mit Mojave wie auch der aktuellen Version Catalina funktioniert es.
Vielen Dank dafür.Gruß
-
Ich hatte ein Admin-Adapter durchgeführt. Seit dem kann ich über den Browser gar nicht mehr zugreifen (Webseite nicht erreichbar). Heißt das, daß die Iobrokerinstallation zerstört ist? Dann würde ja ein Restore auch nicht helfen. Oder?
-
@joergfrde sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Ich hatte ein Admin-Adapter durchgeführt.
Update nehme ich an
@joergfrde sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Heißt das, daß die Iobrokerinstallation zerstört ist?
nein!
geh bitte über putty auf den ioBroker-Server und gib ein
iobroker status iobroker list instances
und poste hier das Ergebnis
-
@Homoran Ok, werde ich machen. Aber wahrscheinlich erst am WE.
-
Hallo habe ein ähnliches Problem,
habe ein zweites System aufgesetzt und wollte ein Backup einspielen. Laut iobroker status läuft das system auch:
artur@ioBroker2:~$ iobroker status iobroker is running on this host. At least one iobroker host is running. Objects type: file States type: file
die Instanzen sind auch alle eingerichtet (natürlich nicht gestartet weil ich ja noch das erste System betreibe:
artur@ioBroker2:~$ iobroker list instances + system.adapter.admin.0 : admin - enabled, port: 8081, bind: 192.168.168.114, run as: admin system.adapter.alexa2.0 : alexa2 - disabled + system.adapter.backitup.0 : backitup - enabled system.adapter.cloud.0 : cloud - disabled system.adapter.deconz.0 : deconz - disabled system.adapter.discovery.0 : discovery - disabled system.adapter.feiertage.0 : feiertage - disabled system.adapter.flot.0 : flot - disabled system.adapter.hm-rpc.0 : hm-rpc - disabled, port: 12001 system.adapter.hm-rpc.1 : hm-rpc - disabled, port: 0 system.adapter.hm-rpc.2 : hm-rpc - disabled, port: 0 system.adapter.ical.0 : ical - disabled system.adapter.icons-fatcow-hosting.0 : icons-fatcow-hosting - disabled system.adapter.icons-icons8.0 : icons-icons8 - disabled system.adapter.icons-mfd-png.0 : icons-mfd-png - disabled system.adapter.icons-mfd-svg.0 : icons-mfd-svg - disabled system.adapter.icons-ultimate-png.0 : icons-ultimate-png - disabled system.adapter.info.0 : info - disabled system.adapter.javascript.0 : javascript - disabled system.adapter.javascript.1 : javascript - disabled system.adapter.modbus.0 : modbus - disabled system.adapter.modbus.1 : modbus - disabled system.adapter.ping.0 : ping - disabled system.adapter.shuttercontrol.0 : shuttercontrol - disabled system.adapter.sql.0 : sql - disabled, port: 3306 system.adapter.systeminfo.0 : systeminfo - disabled system.adapter.tankerkoenig.0 : tankerkoenig - disabled system.adapter.telegram.0 : telegram - disabled, port: 8443, bind: 0.0.0.0 system.adapter.vis-bars.0 : vis-bars - disabled system.adapter.vis-canvas-gauges.0 : vis-canvas-gauges - disabled system.adapter.vis-colorpicker.0 : vis-colorpicker - disabled system.adapter.vis-fancyswitch.0 : vis-fancyswitch - disabled system.adapter.vis-google-fonts.0 : vis-google-fonts - disabled system.adapter.vis-history.0 : vis-history - disabled system.adapter.vis-hqwidgets.0 : vis-hqwidgets - disabled system.adapter.vis-jqui-mfd.0 : vis-jqui-mfd - disabled system.adapter.vis-justgage.0 : vis-justgage - disabled system.adapter.vis-metro.0 : vis-metro - disabled system.adapter.vis-rgraph.0 : vis-rgraph - disabled system.adapter.vis-timeandweather.0 : vis-timeandweather - disabled system.adapter.vis-weather.0 : vis-weather - disabled system.adapter.vis.0 : vis - disabled system.adapter.weatherunderground.0 : weatherunderground - disabled system.adapter.web.0 : web - enabled, port: 8082, bind: 192.168.168.114, run as: admin + instance is alive
Ich kann aber nicht auf die admin oberfläche per Webbrowser zugreifen:
Kann mir jemand hier einen Hinweis geben was ich machen muss?
Vielen Dank,
Artur
-
@LoxDUS sagte in [HowTo] ioBroker Restore unter Linux durchführen:
Kann mir jemand hier einen Hinweis geben was ich machen muss?
Die richtige IP verwenden.
Der ioBroker hört nur auf 192.168.168.114:8081, du versuchst es aber über 192.168.178.114:8081. Das kann nicht funktionieren!
Du solltest im Admin die IP auf 0.0.0.0 binden. Dann wird es auch funktionieren wenn du auf eine andere IP umziehst.
-
....-----^^^^ Oh man, das ist mir nicht aufgefallen ^^^^-----.....
OK, ich habe jetzt mit
iobroker set admin.0 --bind 0.0.0.0
Das binding geändert und schwups .... es läuft.
artur@ioBroker2:~$ iobroker list instances [sudo] Passwort für artur: + system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin system.adapter.alexa2.0 : alexa2 - disabled + system.adapter.backitup.0 : backitup - enabled system.adapter.cloud.0 : cloud - disabled
Vielen Dank für die schnelle Hilfe.
Grüße,Artur