ioBroker

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:

  1. Wieder per SSH an dem PI anmelden
  2. Falls das Verzeichnis backups unter /opt/iobroker nicht existiert, dies zunächst anlegen
  3. Sicherungsdatei .tar.gz in das Verzeichnis backups kopieren
  4. ioBroker stoppen
    sudo iobroker stop 
  5. Backup zurück spielen
    sudo iobroker restore 0
  6. 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.

 

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

10 Gedanken zu „Manuelle Sicherung von ioBroker

  • 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?

    Antwort
    • Matthias Korte

      Moin,
      versuche mal nur den „stop“ ohne „stop all“.

      sudo iobroker stop

      Antwort
  • Patrick

    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

    Antwort
  • Carsten

    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?

    Antwort
  • Carsten

    Vielen Dank! Hat funktioniert.

    Antwort
  • Klaus

    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.

    Antwort
  • Äd Franzis

    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

    Antwort

Schreibe einen Kommentar zu markus Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.