Manuelle Sicherung von ioBroker
In diesem Artikel zeige ich, wie ich meinen ioBroker manuell über die in ioBroker integrierte Backup-Funktion sichere. Im ersten Schritt machen wir das manuell. Später soll es jede Nacht automatisiert auf mein NAS-Speicher gesichert werden.
Um mit der manuellen Sicherung zu beginnen, melden wir uns zunächst via SSH am Raspberry PI an, auf dem der ioBroker installiert und ausgeführt wird.
Ich nutze dazu das Tool Putty. Als Hostname wählen wir hier die IP-Adresse des Raspberry PI.
Nach der Anmeldung am PI wird die Konsole angezeigt.
Im ersten Schritt wechseln wir nun mit folgendem Befehl in das ioBroker Verzeichnis:
cd /opt/iobroker
Jetzt führen wir folgenden Befehl für das Backup aus:
./iobroker backup
Mit dem Backup-Befehlt erstellt iobroker in dem Verzeichnis /opt/iobroker/backups eine gepackte Datei mit Datum im Dateinamen, z.B.: 2018_02_28-13_30_00_backupIoBroker.tar.gz
Im nächsten und letzten Schritt müssen wir nur noch das Backup-Archiv auf einen anderen PC, Server oder das NAS kopieren Für den Zugriff auf den PI verwende ich eine SFTP SSH Verbindung über das Tool FileZilla. Als Server-Name geben wir hier wieder die IP-Adresse des PI, sowie den Port 22 und als Protokoll das SFTP-Protokoll.
Nach dem Verbinden mit dem PI können wir in das Verzeichnis opt/iobroker/backups wechseln und hier die erstellte Sicherung via SFTP auf den PC übertragen.
Wenn wir jetzt das Backup wieder in den ioBroker zurückspielen möchten, muss folgendermaßen vorgegangen werden:
- Wieder per SSH an dem PI anmelden
- Falls das Verzeichnis backups unter /opt/iobroker nicht existiert, dies zunächst anlegen
- Sicherungsdatei .tar.gz in das Verzeichnis backups kopieren
- ioBroker stoppen
sudo iobroker stop - Backup zurück spielen
sudo iobroker restore 0
- ioBroker starten
sudo iobroker start all
sudo iobroker start
sudo iobroker upload all
Jetzt sollte die ioBroker Instanz aus der Sicherung wiederhergestellt sein.
Fragen oder Anregungen wie immer über die Kommentar-Funktion unter dem Artikel oder per E-Mail.
Pingback: ioBroker JavaScript – Tipps und Tricks – smarthome-tricks.de
Hi, eine schöne Anleitung,doch klappt es bei mir nicht so ganz in den letzten Schritten. Folgender Fehler kommt:
pi@ioBroker-RasPi:~ $ sudo iobroker stop all
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
Adapter „all“ stopped.
pi@ioBroker-RasPi:~ $ sudo iobroker restore 0
Stop iobroker first!
Der iobroker sollte doch eigentlich gestopped sein, oder?
Moin,
versuche mal nur den „stop“ ohne „stop all“.
sudo iobroker stop
Hallo
Bei mir bleibt die SSH Session nach dem Befehl sudo iobroker start all stehen
Kann auch keine Eingabe mehr machen.
Ist dies normal? Oder muss man einfach länger warten?
Danke
ja, warten…
Hallo, ich habe grad ein Backup erstellt und wollte dies zum Test wieder einspielen nachdem ich einen Adapter gelöscht habe. Ich bekomme folgende Meldung:
/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupBackup.js:568
if (parseInt(name.trim(), 10).toString() === name.trim().toString()) {
^
TypeError: name.trim is not a function
at BackupRestore.restoreBackup (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupBackup.js:568:27)
at dbConnect (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:1501:28)
at Object.connected (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:3114:29)
at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemServer.js:184:26)
at runCallback (timers.js:794:20)
at tryOnImmediate (timers.js:752:5)
at processImmediate [as _immediateCallback] (timers.js:729:5)
Wie komme ich hier weiter?
Moin Carsten,
schau mal hier:
https://forum.iobroker.net/topic/23036/gel%C3%B6st-iobroker-restore-typeerror-name-trim-is-not-a-function
Vielen Dank! Hat funktioniert.
Hallo Mathias,
habe versucht ein backup an einem neues raspberry mit iobroker einzuspielen.
Die Version des ioBroker ist unterschiedlich.
Das backup habe ich in /opt/iobroker und /opt/iobroker/iobroker-data/backup-objects kopiert.
Habe folgende Meldung bekommen.
pi@raspberrypi:~ $ sudo iobroker restore 0
No matching backup found
host.raspberrypi Cannot find /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/../../../../backups/_backupiobroker.tar.gz
host.raspberrypi Cannot extract from file „/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/../../../../backups/_backupiobroker.tar.gz“
host.raspberrypi Cannot find extracted file from file „/opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/backup.json“
iobroker controller daemon is not running
host.raspberrypi OK.
(node:1848) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open ‚/opt/iobroker/node_modules/iobroker.js-controller/tmp/backup/backup.json‘
at Object.openSync (fs.js:439:3)
at Object.readFileSync (fs.js:344:35)
at BackupRestore.restoreAfterStop (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupBackup.js:566:23)
at Daemon.daemon.on (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupBackup.js:843:22)
at Daemon.emit (events.js:194:15)
at Daemon._kill (/opt/iobroker/node_modules/daemonize2/lib/daemonize.js:246:14)
at Daemon.stop (/opt/iobroker/node_modules/daemonize2/lib/daemonize.js:185:17)
at tar.extract.err (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupBackup.js:845:20)
(node:1848) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1848) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Hallo,
vielen Dank für die Beschreibung. Leider funzt das Update bei mir nicht.
Ich habe ioBroker komplett neu installiert. Danach konnte ich auch die WEB-Seite http://IP-vom-Pi:8081aufrufen – ein „jungfreulicher“ ioBroker meldete sich.
Dann habe ich mein gespeichertes Backup zurückgespielt, wie in der Anleitung beschrieben.
Das ging auch bis Schritt 5 einschließlich fehlerfrei.
Es kam auch die Meldung, dass das Backup erfolgreich gewesen sei.
Aber dann bei Schritt 6:
sudo iobroker start all
Meldung: No connection to states 127.0.0.1:6397[redis]
sudo iobroker start
Der hat gefunzt.
sudo iobroker upload all
Meldung: No connection to states 127.0.0.1:6397[redis]
Und wenn ich nun wieder die Web-Seite des ioBrokers aufrufe, wird sich nicht gefunden. Auch ein Re-Start half nichts.
Wie kann ich nun mein System wieder zum Laufen bringen?
MfG.
Äd