Homematic-Sicherung

Aus Debacher-Wiki
Zur Navigation springenZur Suche springen

Mit Linux-Bordmitteln lässt sich relativ einfach eine komplette Sicherung des Homematic-Systems auf meinem Synology-NAS erstellen. Ein komplettes Backup hat den Vorteil, dass es sich relativ einfach zurück spielen lässt, wenn die Originalversion einmal beschädigt ist.

Backups sind aber immer dann ein Problem, wenn man daran denken muss, sie auch wirklich zu machen. Hier bietet sich ein automatisierter Prozess an, der die gesamte Speicherkarte regelmäßig sichert. Diese Sicherung kann man dann mit dd wieder auf eine Speicherkarte schreiben.

Vollständiges Backup

Auf der Seite https://hobbyblogging.de/raspberry-pi-vollautomatisch-sichern habe ich da ein nettes Listing gefunden, aus dem ich wieder ein paar neue Elemente übernommen habe. Das Listing habe ich geringfügig an meine Bedingungen angepasst.

#!/bin/bash

#Variablen
BACKUP_PFAD="/tmp/nas"
BACKUP_ANZAHL="5"
BACKUP_NAME="Homematic01"

#Festplatte einbinden
mkdir ${BACKUP_PFAD}
mount -t cifs -o vers=2.0,user=<benutzer>,password=<passwort>,rw,file_mode=0777,dir_mode=0777 //192.168.x.y/NetBackup ${BACKUP_PFAD}
#ls -la ${BACKUP_PFAD}

#Backup erstellen
dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d).img bs=1MB

#Alte Sicherung löschen
pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd

#Festplatte auswerfen
umount ${BACKUP_PFAD}

Einige der Zeilen bedürfen einer Erläuterung:

  • In Zeile zehn wird eine Freigabe auf dem NAS per CIFS bzw. Samba eingebunden. Bei mir auf dem NAS läuft nicht die aktuellste Version, daher muss ich hier eine ältere Versionsnummer konkret angeben.
  • In Zeile vier wird das lokale Verzeichnis zum Mounten angegeben, das muss man ggf. erst erstellen
  • In Zeile vierzehn macht dd dann den eigentlichen Job. Es wird der komplette Karteninhalt auf die NAS-Freigabe kopiert
  • In den Zeilen fünf und sechs werden noch Einstellungen für das Backup gemacht, z.B. für die maximale Zahl der Backups, die sind ja 7 GB groß, insofern spielt das schon eine Rolle
  • Zeile siebzehn muss man sich eine Weile ansehen. Im ersten Schritt wird mit pushd das aktuelle Verzeichnis gesichert und der Backup-Pfad dann als Verzeichnis gesetzt. Mit dem ls Befehl werden dann die Sicherungen gelistet und mittel head die Liste auf diejenigen beschränkt, die nicht zu den ersten 5 gehören. Diese Einträge werden dann gelöscht. Bei den ersten fünf Sicherungen gibt es hier eine Fehlermeldung, da noch nichts zu Löschen ist. Am Ende wird das ursprüngliche Arbeits-Verzeichnis wiederhergestellt.

Die Datei heißt bei mir disk-backup.sh und muss ausführbar gemacht werden.

Gespeichert habe ich das kleine Programm auf dem zusätzlich eingesteckten USB-Stick, also unter /media/usb1

Auf die Einbindung als Cron-Job habe ich bisher verzichtet. Die entsprechende Datei ist ansonsten zu finden unter

/usr/local/crontabs/root


Nützliche Quellen