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
Unter Host/IP den Hostnamen oder die IP-Adresse eurer IoBroker-Insallation eintragen
Port 22 / SSH
Open
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.
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.
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
Dies geschieht über das Icon 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.
Wechseln wir nun zum Reiter Scripte.
Anschließend wird per Klick auf das Icon 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!