Automatisiertes IoBroker Backup auf USB-Stick

Du hast eine IoBroker-Installation zusätzlich zu deiner Homematic?
Wie wichtig ein Backup ist, das wird den meisten Menschen erst nach einem Datenverlust klar. Auch jeder Hobby-Informatiker weiß, dass ein Backup besser auf einem separaten Datenträger aufgehoben wird.

Bereits in meinem Beitrag zur automatischen Datensicherung der Homematic habe ich eine heute oft eingesetzte Methode an die Hand gegeben.
Um dies noch für den IoBroker zu ergänzen, bekommt ihr hier die Lösung zum automatischen IoBroker Backup auf USB-Stick.

Da der IoBroker auf Raspberry Pi Basis meist bereits auf einer SD-Karte läuft, empfiehlt es sich das Backup auf einem USB-Stick auszulagern.

Voraussetzung: Lauffähige IoBroker Installation (auf Raspberry Pi) und einen USB-Stick.

-> IoBroker auf Raspberry Pi installieren

Los geht’s!

USB-Stick vorbereiten

Der USB-Stick wird in diesem Beispiel als FAT32 formatiert.
Dies kann ganz normal unter Windows geschehen.

Benötigte Linux-Pakete installieren

Mit Hilfe des Programms Putty auf dem Raspberry Pi per SSH einloggen

  • Putty starten
  • Homematic Bluetooth Putty
    Unter Host/IP den Hostnamen oder die IP-Adresse eurer IoBroker-Insallation eintragen
    Port 22 / SSH
    Open
  • Benutzernamen und Passwort eingeben
  • Hat sich die Console erfolgreich geöffnet, können folgende Befehle eingegeben werden:
    sudo apt-get update
    sudo apt-get install usbmount

    Damit holt sich der APT-Paketmanager die neuesten Source-Listen und installiert anschließend die benötigten Pakete.

  • Es wurde während der Installation mehrere Ordner in /media/* angelegt. Darin befinden sich nun Ordner mit dem Namen USB0, USB1, USB2, …
    Wenn jetzt ein USB-Stick angesteckt wird, wird dieser auch automatisch zu diesen Ordnern gemountet.

  • Jetzt muss noch die Konfiguration angepasst werden, damit auch ein normaler User Schreibzugriff hat.
    Dazu öffnen wir folgende Datei:

    sudo nano /etc/usbmount/usbmount.conf

    Hier sucht man nach folgender Zeile:

    FS_MOUNTOPTIONS=""

    und ändert diese in

    FS_MOUNTOPTIONS="-fstype=vfat,gid=users,dmask=0007,fmask=0117"

    Jetzt wird die Datei mit den Befehlen Strg + O, Enter, Strg + X gespeichert.

  • Anschließend wird der USB-Stick eingesteckt und der Raspberry mit folgendem Befehl neugestartet
    sudo reboot
  • Prüfung USB-Stick

    Ist der Raspberry wieder hochgefahren, kann getestet werden, ob der USB-Stick korrekt gemountet wird.
    Dazu loggen wir uns wieder auf dem Rasperry ein und führen folgenden Befehl aus

    df -h

    Jetzt sieht man eine Ausgabe. Hier wird der USB-Stick z.B. als usb0 gemountet:

    Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
    /dev/sda1       3,8G     16K  3,8G    1% /media/usb0

    Hat alles erfolgreich geklappt, merken wir uns den Pfad (in diesem Beispiel /media/usb0) und beenden die Console mit dem Befehl

    exit

    Achtung: Hier bitte die korrekte Schreibweise (Groß-/Kleinschreibung) beachten!

    IoBroker Backup Script

  • Bevor wir das Script einfügen können, müssen wir zuerst den Reiter SCRIPTE in der Ansicht anzeigen lassen.
    Dies geschieht über das Icon ioBroker Javascript und anschließendem Klick auf Ansicht -> Scripte.
    Ist der Reiter Script jetzt zu sehen, kann der Bearbeitungsmodus mit erneutem Klick auf das Symbol beendet werden.

  • Homematic Javascript
    Wechseln wir nun zum Reiter Scripte.
    Anschließend wird per Klick auf das Icon ioBroker Javascript NEU ein neues Script vom Typ Javascript erstellt.
    Diesem geben wir einen sinnvollen Namen (z.B. Backup) und fügen folgenden Code ein:

    Achtung: im Adapter Javascript muss die Option „Enable Exec“ aktiviert sein.

    // IoBroker-Backup Script by Homematic-Guru.de
    // https://homematic-guru.de/automatisiertes-iobroker-backup-auf-usb-stick
    // Täglich um 01:00 Uhr Nachts wird das Backup ausgeführt. Anpassbar unter "schedule"
    var usbstick = "/media/usb0/"; /*Hier den Pfad zum USB-Stick eintragen*/
    
    function backup() {
        exec('iobroker backup', 
            function (error, stdout, stderr) {console.log('stdout: ' + stdout);});
        setTimeout( function() { 
            exec('mv  -v /opt/iobroker/backups/* ' + usbstick,
                function (error, stdout, stderr) {console.log('stdout: ' + stdout);});
        }, 60000);
    }
    
    schedule("0 1 * * *",  function(obj){
        backup();
    });
    

    Jetzt noch den Pfad zum USB-Stick eintragen und das Script starten.
    Ab sofort wird jede Nacht um 1 Uhr ein IoBroker Backup erstellt und auf dem USB-Stick gespeichert.
    Wer gerne eine andere Zeit/Zeitspanne haben möchte, der kann HIER etwas über CRONTAB nachlesen und das Script ggf. anpassen.

    Fertig!

    Verwendete Hardware

  • Dir hat der Beitrag gefallen?

    Trage dich kostenlos & unverbindlich in den Newsletter ein
    und verpasse keinen Beitrag mehr!

    Schaue auch gerne auf Facebook vorbei: