EDIT 31.10.2017: Möglicherweise ist das Verfahren nach einem Update nur noch für Raspberrymatic möglich

Wer ein Backup durchführen möchte, muss dies in der CCU manuell tun. Nach größeren Änderungen daran zu denken, ist nicht leicht. Und eine Post-it auf dem PC ist auch irgendwie “Oldschool”. Daher muss eine automatische Lösung her.

Nach einiger Recherche bin ich hierauf gestoßen. (https://homematic-guru.de/homematic-automatisches-backup) mit einem einfach Codeschnipsel kann in einem Programm das Backup per Zeitsteuerung angestoßen werden. IDEAL! …. Wenn da nicht das Problem wäre, dass der Speicherort die interne SD Karte der CCU bzw. des Raspberry ist. Dinge die zuerst defekt werden sind das Netzteil und die SD-Karte. Daher wollte ich kein Backup auf dem selben Medium was wahrscheinlich der Grund ist, weshalb ich das Backup brauche. 

Hier möchte ich euch eine Möglichkeit zeigen, wie ihr ein automatisiertes Backup auf meinem NAS (Network Attached Storage) anlegt. Bei mir ist das eine QNAP, die wiederum über eine andere QNAP gesichert wird. Da muss also schon viel schief laufen, damit ich nicht mehr an mein Backup ran käme. Die hier gezeigte Herangehensweise wurde von Jérôme entwickelt. Ich möchte Sie hier Stück für Stück erklären. 

Die erstellten Backups werden auf der CCU nach 7 Tagen wieder gelöscht.

Und los gehts…

1. Freigabe auf dem NAS einrichten

Hierzu habe ich einen neuen Benutzer namens “Homematic” angelegt. Dieser Benutzer hat nur Zugriff auf einen Ordner. Mehr darf er bei mir nicht.

 

2. per SSH an der CCU / dem Raspberry anmelden

Dazu benötigt ihr ein Tool, z.B. “Putty”, das gibts hier zum kostenlosen Download.  Außerdem muss in der CCU SSH aktiviert sein. Im oberen Screenshot (auf der Seite, auf der das manuelle Backup gemacht werden kann) ist der Punkt ganz unten zu sehen. Haken rein und ein Passwort vergeben.

In Putty ist dann die IP der CCU einzugeben und mit dem Button “open” öffnet sich ein Eingabefenster.

Der login Name ist bei der CCU der Benutzername (i.d.R. “admin) und  bei Raspberrymatic “root”. Das Passwort ist das, welches oben bei dem Haken SSH in der WebUI der CCU eingegeben wurde. Nach dem richtigen Passwort erscheint kein “OK” oder so. Das Fenster sieht anschließend so aus.

Nach der Anmeldung kopierst du folgenden Code in dieses Fenster. (“STRG” +”V” funktioniert im Eingabefenster unter Windows NICHT!) Zum Einfügen musst du die rechte Maustaste verwenden.

vi /usr/local/addons/makeBackup.sh

anschließend die Taste “i” drücken. Mit „vi /usr/local/addons/makeBackup.sh“ öffnet der Editor namens “vi” die Datei “/usr/local/addons/makeBackup.sh” nur lesend. Der Tastendruck „i“ schaltet in den „Insert-Modus“ um. Unten links in der Ecke erscheint auch der Großbuchstabe „I“.

3. Hier das eigentliche Script

Nun sollte das folgende Script in eine Texteditor kopiert werden.

echo "Mounte Dateisystem"
mount -t cifs -o sec=ntlm,vers=1.0,username=<username>,password=<password> //IPdesNAS/public /mnt
echo "Erstelle Backup"
/usr/local/addons/cuxd/extra/ccu_backup
echo "Kopiere Backup"
cp /var/tmp/*.sbk /mnt
echo "Loesche lokale alte Backups lokal"
rm -rf /var/tmp/*.sbk
echo "Loesche lokale alte Backups auf mount"
find /mnt -name "*.sbk" -mtime +7 -exec rm -f {} \;
echo "Unmounte Dateisystem"
echo "Fertig."<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1">​</span>

Nun nur noch in der weiten Zeile die Zugangsdaten zum NAS eintragen und vom Texteditor auf den Raspberry kopieren.

Anschließend die Taste „ESC“ drücken – das „I“ unten Links verschwindet und es erscheint wieder ein „-“. Jetzt “:wq” eingeben (w = write, q = quit)

:wq

und mit “Return” bestätigen. Dann wird die Datei geschrieben und der Editor beendet.

Je nachdem welchen NAS man nutzt, muss die zweite Zeile evtl. angepasst werden.

Version 1

mount -t cifs -o vers=1.0,username=<username>,password=<password> //IPdesNAS/public /mnt

Version 2

mount -t cifs -o sec=ntlm,username=<username>,password=<password> //IPdesNAS/public /mnt

 

Mit diesem Befehl werden dann noch die Berechtigungen für das Programm gesetzt.

chmod 755 /usr/local/addons/makeBackup.sh

<Return>

crontab -e

<Return>:

Taste “G” drücken (Großbuchstabe!)
Taste “o” drücken

Wer das Backup nun zeitgesteuert in der CCU machen möchte, kann hier aufhören und bei Punkt 4 weitermachen. Wer gerne wenig Programm in der CCU hat, kann die Zeitsteuerung direkt auf dem  Raspberry durchführen. 

Mit dieser Zeile wird die Zeit des automatischen Backups angegeben.

0 1 * * * /usr/local/addons/makeBackup.sh > /var/log/backup.log

“Esc”-Taste drücken

:wq

<Return>

Hier bedeutet “0 1 * * * ” –> Um 01:00 Uhr! Also wird täglich ein Backup erstellt.

4. Probelauf

Um zu testen, ob alles funktioniert, kann der folgende Code eingegeben werden.

/usr/local/addons/makeBackup.sh

<Return>

Nun ist alles eingerichtet und wenn das Backup durchläuft, erscheint im Freigabeordner des NAS die Backupdatei.


Das fertige Backup ist nun eingerichtet. Es ist aber auch möglich, das Backup nicht über Crontab zu steuern, sondern direkt über die CCU / RM. Hierbei gibt es zwei Möglichkeiten. Damit aber das Backup nicht doppelt läuft, ist die Zeile mit der Zeitsteuerung (0 1 * * * /usr/local/addons/makeBackup.sh > /var/log/backup.log) von oben komplett zu löschen, oder durch eine vorangestellte Raute (#) auszukommentieren.

  1. Virtueller Taster
    In meinem Fall habe ich einen CUxD Kanal gewählt und dort als Tastendruck kurz folgenden Code eingefügt.
/usr/local/addons/makeBackup.sh

Fertig sieht das dann so aus:

  1. Alternativ kann direkt im Programm ein Script erstellt werden, welches dann so aussieht. (Voraussetzung ist hierfür das installierte CUxD Addon in einem installierten EXEC Gerät)
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State ("/usr/local/addons/makeBackup.sh");

An dieser Stelle möchte ich mich nochmal für die Hilfe bei Jerome Pech bedanken, der mir diese Idee erklärt und gezeigt hat, sodass ich Sie euch nahe bringen kann.

Bei allen, denen das Backup nicht funktioniert (auch manuell über die WebUI der CCU), ist eine mögliche Ursache, das installierte Addon “CCU-Historian”. Das Addon sollte entweder für das Backup, oder aber besser, dauerhaft deinstalliert werden. (Mein Backup mit Historian war 890MB und ohne, nur 6MB) 🙂

Bei mir läuft Historian inzwischen auch auf der NAS. Eine Anleitung dazu gibts auf der Webseite von Historian.

 

UPDATE 11.01.2018:
Ich habe nun festgestellt, dass der einmalige Aufruf des Script manchmal nicht ausreicht, um die NAS “aufzuwecken” und das Backup anzustoßen. Ich erhalten dadurch häufig “timeout”. Daher habe ich nun den Aufruf zweimal im Programm. Seit dem funktioniert das automatische Backup zuverlässig.

Print Friendly, PDF & Email

28 Kommentare

  1. Also das Script an sich funktioniert noch und wurde bei mir übernommen. Daher sollte es keine Probleme damit geben. 🙂

  2. Weiß man schon, ob das Script die neue RaspberryMatic-Update-Funktion (ab 2.31.25.20180428, also Update direkt aus dem WebUI raus) übersteht? Oder muss man es anschließend von Hand per SSH neu anlegen!?

  3. Seit RaspberryMatic 2.31.25.20180324 muss noch zusätzlich die Option “vers=1.0” angegeben werden:
    mount -t cifs -o sec=ntlm,vers=1.0,username=XXXXXX,password=XXXXXX ///FreigabeName /mnt

  4. Hallo Zusammen,

    ich bekomme immer folgende Fehlermeldung beim mounten:
    mount: mounting //192.168.60.10/99_BACKUP_SH/HomeMatic on /mnt failed: Input/output error

    woran kann es liegen? hier mal mein mount Befehl:

    mount -t cifs -o sec=ntlm,username=HomeMatic,password=meinpasswort //192.168.60.10/99_BACKUP_SH/HomeMatic /mnt

    VG
    Tecky

  5. hat bei mir geklappt…. jedoch sind die Backups unterschiedlich groß???
    via WebUI geladen um die 4,5 MB
    auf dem Synology haben die backups 7,5 MB ?????
    Woran kann das liegen?

  6. Hallo zusammen,

    was mache ich den falsch….?? Ich möchte gerne den Zugriff auf eine Synology NAS einrichten, habe alles wie hier beschrieben beachtet – auch den NFS-Zugriff eingerichtet aber ich bekomme immer diese Meldung, siehe nachstehend.

    Hat mir jemand einen Tipp, ich würde mich riesig über Hilfe bzw. Unterstützung freuen!

    Vielen Dank mal vorab, schönen Tag,

    Kay-Uwe

    Read-only file system…….

    There are filesystem-specific -o flags.
    Erstelle Backup
    SBK-File: /var/tmp/HomeMatic-2.29.23.20171022-2017-11-10-0852.sbk

    saving DOM… OK!
    creating archive…
    sign configuration with current key…
    store current key index…
    copy firmware version…
    creating /var/tmp/HomeMatic-2.29.23.20171022-2017-11-10-0852.sbk
    clean up temp files…
    Kopiere Backup
    cp: can’t create ‘/mnt/HomeMatic-2.29.23.20171022-2017-11-10-0852.sbk’: Read-only file system
    Loesche lokale alte Backups lokal
    Loesche lokale alte Backups auf mount
    Unmounte Dateisystem
    Fertig.

  7. Hallo,

    ich nutze Raspberrymatic mit der Version 2.29.22.20170902 wenn ich jetzt auf 2.29.23.20171022 updaten wollen würde müsste ich ja laut der Updateanleitung die SD Karte formatieren das neue Raspberrymatic aufspielen und das letzte Backup aufspielen. Beinhaltet das Backup dann das Script was ich angelegt habe für das täglich Backup oder muss dies neu angelegt werden?

    Gruß Timo

  8. Ich habe den Beitrag ganz oben editiert. Da das Problem nun schon 3 weitere haben, gehe ich davon aus, dass in der CCU beim letzten Update etwas geändert wurde, was dafür relevant war.

  9. Hallo,

    bin gerade dabei das Automatische BackUp auf meine CCU einzurichten leider ohne erfolg. Ich bekomme immer wieder diese Meldung “No such device or address”.

    Muss dabei sagen, dass ich dies heute schon einmal gemacht habe auf meine RaspberryMatic. Damit klappt es ohne Probleme.

    Mir ist auch aufgefallen das ich bei der CCU leere Zeilen nicht löschen kann das dieses hier ‘~’ wieder kommt.

  10. Für alle Synology Nutzer. Das Mounten hier im Script klappte bei mir nicht. Hab etliches versucht. Letztendlich mounte ich die Freigabe mit nfs statt mit cifs. Das klappt hervorragend. NFS muss aber in den Dateidiensten aktiviert und die CCU in den Berechtigungen hinterlegt sein.

    mount -t nfs IPdesNAS:/volume1/PfadzurFreigabe/ -o rw,nolock /mnt

  11. Hallo,

    okay nachdem ich nun wusste wie ich den Editor bediene hab ich gerade eine Stunde verzeifelt nach dem Fehler gesucht warum meine WDMyCloud immer sagt das Passwort wäre falsch, lag letzendlich daran das ich unter Windows “\192.168.178.38\HomematicBackup” kopiert habe. Es richtig aber “//192.168.178.38/HomematicBackup” heißen muss.

    Jetzt funktioniert alles einwandfrei Danke

  12. Hallo Sven Os, es scheint, also ob das Script deinen Ordner nicht finden kann. Hast du den Freigabenamen auf der Synology in Kleinbuchstaben erstellt? In deinem letzten Absatz hast du nach der IP einen “:” mit drin. Falls du den auch im Script hast, bitte mal rausnehmen. Da ich keine Synology habe, kann ich hier nicht wirklich weiterhelfen. Aber vielleicht funktioniert das ja schon so.

  13. Leider kann ich das Script bei mir nicht zum Laufen bringen.
    Ich nutze ein Synology NAS und habe einen neuen gemeinsamen Ordner mit NFS-Berechtigungen versehen, gemäß dieser Anleitung
    https://www.synology.com/de-de/knowledgebase/DSM/tutorial/File_Sharing/How_to_access_files_on_Synology_NAS_within_the_local_network_NFS
    Ein Nutzer “homematic” mit Lese-/Schreibrechten auf den Ordner existiert.

    Ich nutze folgenden angepassten Code:
    echo “Mounte Dateisystem”
    mount -t cifs -o sec=ntlm,username=homematic,password=meinpasswort //192.168.xxx.xxx/volume1/hcbackup /mnt
    echo “Erstelle Backup”
    /usr/local/addons/cuxd/extra/ccu_backup
    echo “Kopiere Backup”
    cp /var/tmp/.sbk /mnt
    echo “Loesche lokale alte Backups lokal”
    rm -rf /var/tmp/
    .sbk
    echo “Loesche lokale alte Backups auf mount”
    find /mnt -name “*.sbk” -mtime +7 -exec rm -f {} \;
    echo “Unmounte Dateisystem”
    echo “Fertig.”

    und erhalten die folgende Ausgabe:

    Mounte Dateisystem
    mount: mounting //192.168.xxx.xxx/volume1/hcbackup on /mnt failed: No such device or address
    Erstelle Backup
    SBK-File: /var/tmp/homematic-ccu2-2.29.22.20170902-2017-09-10-1506.sbk

    saving DOM… OK!
    creating archive…
    sign configuration with current key…
    store current key index…
    copy firmware version…
    creating /var/tmp/homematic-ccu2-2.29.22.20170902-2017-09-10-1506.sbk
    clean up temp files…
    Kopiere Backup
    cp: can’t create ‘/mnt/homematic-ccu2-2.29.22.20170902-2017-09-10-1506.sbk’: Read-only file system
    Loesche lokale alte Backups lokal
    Loesche lokale alte Backups auf mount
    Unmounte Dateisystem
    Fertig.

    Was kann ich tun?
    Die von Synology in der Anleitung vorgegebene Syntax 192.168.xxx.xxx:/volume1/hcbackup statt //192.168.xxx.xxx/volume1/hcbackup habe ich auch bereits ausprobiert.

  14. Du musst den kompletten Code einfügen (und natürlich vorher anpassen) nicht das Codeschnipsel mit dem Nutzernamen:

    echo “Mounte Dateisystem”
    mount -t cifs -o sec=ntlm,username=,password= //IPdesNAS/public /mnt
    echo “Erstelle Backup”
    /usr/local/addons/cuxd/extra/ccu_backup
    echo “Kopiere Backup”
    cp /var/tmp/.sbk /mnt
    echo “Loesche lokale alte Backups lokal”
    rm -rf /var/tmp/
    .sbk
    echo “Loesche lokale alte Backups auf mount”
    find /mnt -name “*.sbk” -mtime +7 -exec rm -f {} \;
    echo “Unmounte Dateisystem”
    echo “Fertig.”

  15. Hallo Jérôme okay erst vi /usr/local/addons/makeBackup.sh reinkopieren dann Enter drücken okay
    dann “i” drücken I erscheint unten links gut,und dann username=,password= //IPdesNAS/share an meine Daten anpassen auch klar aber dann setzt es aus welchen code muss ich dann eintragen bevor ich ESC damit das I unten link verschwindet und ich mit wq abschliessen kann ????

  16. Hallo Michael so wie es in Deiner Anleitung steht komme ich leider nicht klar
    wie trage ich des ein ??

    mount -t cifs -o sec=ntlm,username=,password= //IPdesNAS/public /mnt

  17. Hallo Timo… Ja.
    Mit “vi /usr/local/addons/makeBackup.sh” öffnet der Editor namens vi die Datei /usr/local/addons/makeBackup.sh nur lesend.

    Der Tastendruck “i” schaltet in den “Insert-Modus” um. Unten links in der Ecke erscheint auch der Großbuchstabe “I”.
    Dann kann der kopierte Code eingefügt werden. Dazu klickt man einfach nur mit der rechten Maustaste (=Paste) im Putty-Fenster und der Inhalt der Zwischenablage wird eingefügt.

    Nun die Taste “ESC” drücken – das “I” unten Links verschwindet und es erscheint wieder ein “-”

    Jetzt :wq eingeben (w = write, q = quit) und mit Return bestätigen. Dann wird die Datei geschrieben und der Editor beendet.

  18. Genau, mit einigen Tastenkombinationen wird zum Beispiel nur bis zum Ende des Codes gesprungen und mit Q der Modus zum Beabeiten geändert. Manchmal sieht man sich nichts, weil es keinen cursor gibt.

  19. Hallo,
    nachdem man sich in Putty eingeloggt hat und den ersten Code “vi /usr/local/addons/makeBackup.sh” einfügt soll man ja anschließen die Taste “i” drücken. Ist das wirklich richtig? Weil er fügt ja ein ein “i” ein und fertig danach passiert ja nichts mehr.

Kommentar schreiben