Automatisches RaspberryMatic Backup erstellen

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

mademyday
Beiträge: 272
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von mademyday » 12.11.2023, 10:52

bador hat geschrieben:
06.11.2023, 09:32
Gibt es eine Möglichkeit, wie man auf der CCU Zentrale automatisch per Script ein strukturiertes Backup der CCU auf meinen PC machen könnte? Ich habe ja mehrere CCUs und deshalb wäre es cool wenn die Backups direkt in die jeweiligen Ordner geladen werden immer so ein Mal in der Woche und die alten Backups sollten dann wieder gelöscht werden.
wenn die Backups auf einem PC landen sollen, würde ich das andersrum machen: auf dem PC würde ich nachts automatisch ein Skript starten lassen, welches die CCUs abklappert und per curl jeweils die normale Web-GUI-Funktion "Backup erstellen" aufruft und die so erstellen Backups lokal auf dem PC ablegt


als Windows-Batch "backup-ccu.cmd" zB so:
(Quelle/von einem anderen Linux System: https://www.lxccu.com/doku.php?id=manua ... cu2-backup)

Code: Alles auswählen

@echo off
setlocal enabledelayedexpansion

for /F "eol=# tokens=1,2* delims=|" %%I in ( %~dpn0.cfg ) do (
  rem --- # IP -oder- hostname|username|pw
  echo.  
  echo # --- %%I ^(%%J^|***^) ---

  set "SID="
  for /F "tokens=3,4 delims=,:" %%L in ( 'curl -s -S -d "{\"method\":\"Session.login\",\"params\":{\"username\":\"%%J\",\"password\":\"%%K\"}}" http://%%I/api/homematic.cgi' ) do (
    rem --- {"version": "1.1","result": "qzc66BC6BC","error": null}
    rem echo %%L;%%~M;
    if "%%~L" == "result" (
      set SID=%%M
      set SID=!SID:~2!
      set SID=!SID:~,-1!
      rem echo # SID=!SID!
    )
  )

  if NOT "!SID!" == "" (
    echo # login OK
    echo.

    set HH=!TIME:~0,2!
    set MM=!TIME:~3,2!
    set MM=!MM: =0!
    set BACKUP="%DATE:~-2%%DATE:~3,2%%DATE:~0,2%-!HH!!MM!-%%I-backup.tar.sbk"
    echo # create + download backup !BACKUP! ...
    curl -s -S -v "http://%%I/config/cp_security.cgi?sid=@!SID!@&action=create_backup" -o !BACKUP!
    echo.

    echo # dir
    dir %DATE:~-2%%DATE:~3,2%%DATE:~0,2%*-%%I-backup.tar.sbk | find /i "-backup.tar.sbk"
    echo.

    echo # logout ...
    curl -s -S -d "{\"method\":\"Session.logout\",\"params\":{\"_session_id_\":\"!SID!\"}}" http://%%I/api/homematic.cgi
    echo.

  ) else (
    echo # login FAILED
    echo.
  )

  rem exit /B
  echo.
)

das cfg-File "backup-ccu.cfg" dazu listet die CCUs samt Zugangsdaten auf:

Code: Alles auswählen

# IP -oder- hostname|username|pw
172.20.1.60|Admin|...
172.20.1.30|Admin|...

log:

Code: Alles auswählen

>backup-ccu.cmd

# --- 172.20.1.60 (Admin|***) ---
# login OK

# create + download backup "231112-1044-172.20.1.60-backup.tar.sbk" ...
*   Trying 172.20.1.60:80...
* Connected to 172.20.1.60 (172.20.1.60) port 80 (#0)
> GET /config/cp_security.cgi?sid=@Z12LqNhOTD@&action=create_backup HTTP/1.1
> Host: 172.20.1.60
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/x-download
< Content-Disposition: attachment;filename=homematic-ccu2-2023-11-12.sbk
< X-Frame-Options: SAMEORIGIN
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< X-Robots-Tag: none
< X-Download-Options: noopen
< X-Permitted-Cross-Domain-Policies: none
< Referrer-Policy: no-referrer
< Cache-Control: private, no-cache, must-revalidate, no-transform, max-age=0
< Content-Length: 4462080
< Date: Sun, 12 Nov 2023 09:45:30 GMT
<
{ [8279 bytes data]
* Connection #0 to host 172.20.1.60 left intact

# dir
12.11.2023  10:45         4.462.080 231112-1044-172.20.1.60-backup.tar.sbk

# logout ...
{"version": "1.1","result": true,"error": null}


# --- 172.20.1.30 (Admin|***) ---
# login OK

# create + download backup "231112-1045-172.20.1.30-backup.tar.sbk" ...
*   Trying 172.20.1.30:80...
* Connected to 172.20.1.30 (172.20.1.30) port 80 (#0)
> GET /config/cp_security.cgi?sid=@sf91i9xJus@&action=create_backup HTTP/1.1
> Host: 172.20.1.30
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/x-download
< Content-Disposition: attachment;filename=ccu3-webui-2023-11-12.sbk
< X-Frame-Options: SAMEORIGIN
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< X-Robots-Tag: none
< X-Download-Options: noopen
< X-Permitted-Cross-Domain-Policies: none
< Referrer-Policy: no-referrer
< Cache-Control: private, no-cache, must-revalidate, no-transform, max-age=0
< Content-Length: 37079040
< Date: Sun, 12 Nov 2023 09:46:02 GMT
<
{ [6822 bytes data]
* Connection #0 to host 172.20.1.30 left intact

# dir
12.11.2023  10:46        37.079.040 231112-1045-172.20.1.30-backup.tar.sbk

# logout ...
{"version": "1.1","result": true,"error": null}


>

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von Xel66 » 12.11.2023, 11:00

mademyday hat geschrieben:
12.11.2023, 10:52
...auf dem PC würde ich nachts automatisch ein Skript starten lassen, welches die CCUs abklappert...
Soweit OK...
mademyday hat geschrieben:
12.11.2023, 10:52
und per curl jeweils die normale Web-GUI-Funktion "Backup erstellen" aufruft...
Eher unnötig, da die Raspberrymatic nachts selbst ein Backup auf einem angeschlossenen USB-Datenträger erstellt. Ist also alles schon vorhanden.
mademyday hat geschrieben:
12.11.2023, 10:52
... und die so erstellen Backups lokal auf dem PC ablegt...
Wenn man sich den zweiten Schritt gespart hat, kann man die vorhandenen Backups auch auf den PC syncen. Das war es dann schon.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

mademyday
Beiträge: 272
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von mademyday » 12.11.2023, 11:12

Xel66 hat geschrieben:
12.11.2023, 11:00
mademyday hat geschrieben:
12.11.2023, 10:52
und per curl jeweils die normale Web-GUI-Funktion "Backup erstellen" aufruft...
Eher unnötig, da die Raspberrymatic nachts selbst ein Backup auf einem angeschlossenen USB-Datenträger erstellt. Ist also alles schon vorhanden.
mademyday hat geschrieben:
12.11.2023, 10:52
... und die so erstellen Backups lokal auf dem PC ablegt...
Wenn man sich den zweiten Schritt gespart hat, kann man die vorhandenen Backups auch auf den PC syncen. Das war es dann schon.
1) nicht jeder nutz RM, ich selbst zb hab auch "nur" originale CCU2 und CCU3

2) wenn die "Aufgabe" lautet, am Ende, von x Systemen Backups an einer zentralen Stelle zu haben, find ich es "eleganter" an eben dieser einen Stelle einen Task zu haben der den Job macht, anstatt auf x Systemen dezentral Jobs einzubauen oder anzupassen (auch wenn das Backup bei RM automatisch erstellt wird, müsste zumindest der Sync eingerichtet werden) - Stichwort Wartbarkeit bei Änderungen

Matsch
Beiträge: 5452
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von Matsch » 12.11.2023, 11:14

mademyday hat geschrieben:
12.11.2023, 11:12
1) nicht jeder nutz RM, ich selbst zb hab auch "nur" originale CCU2 und CCU3
Mag ja sein, aber der Beitrag hier steht im RaspberryMatic-Forum ...

Benutzeravatar
Baxxy
Beiträge: 10848
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2229 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von Baxxy » 12.11.2023, 11:18

Bei mir backuppen die ganzen RM's nachts auf ein NAS. Dazu muss natürlich in jeder der RM's das NAS gemounted werden.

Die Lösung von @mademyday finde ich als Alternative gar nicht mal so schlecht. :)

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Automatisches CCU Backup erstellen

Beitrag von Xel66 » 12.11.2023, 11:44

Baxxy hat geschrieben:
12.11.2023, 11:18
Die Lösung von @mademyday finde ich als Alternative gar nicht mal so schlecht. :)
Grundsätzlich finde ich die auch nicht schlecht, nur für eine Raspberrymatic ist der Aufwand unnötig hoch. Und wenn jemand solche Anfrage im RM-Teil des Forums schreibt, dann gehe ich davon aus, dass dieser eben auch eine RM betreibt und keine originale Firmware. Wobei mir persönlich der Weg mit den gemounteten Verzeichnissen auch lieber wäre, weil es die vorhandene Funktionalität nutzt und keine Parallelwelt aufbaut.

Ich fahre da einen zweigleisigen Weg. Die täglichen Backups brauche ich nicht zwangsweise. So viel ändere ich nicht mehr. Ich halte Backups mit unverändertem Datenstand für verzichtbar. Wer noch viel ändert, sieht das anders, klar. Ich mache bei Besuchen auf der WebUI (vor bzw. nach relevanten Änderungen - je nach "Gefährdungspotenzial") ein manuelles Backup auf dem jeweiligen Rechner. Ansonsten reichen mir die USB-Backups völlig aus. Das hat mir auch schon mal den Ars.. gerettet, nachdem ich mich verkonfiguriert hatte. Ein USB-Stick ist zwar nicht der Weisheit letzter Schluss, aber mir sind einfache, lokale und autarke Lösungen einfach lieber als Konstrukte, die aus mehreren Einzelgeräten aufgebaut sind. Gerade nachdem ich massive Schwierigkeiten mit meinem NAS hatte (ultra träge).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

bador
Beiträge: 50
Registriert: 14.07.2023, 08:38
System: CCU
Hat sich bedankt: 8 Mal
Danksagung erhalten: 2 Mal

Re: Automatisches RaspberryMatic Backup erstellen

Beitrag von bador » 13.11.2023, 08:37

Guten Tag

Ja ich habe eine RaspberryMatic Zentrale und keine Origianle CCU3 Zentrale... Ich habe das jetzt auch Mal noch im Beitrag angepasst.

Also geht dieses Skript nur für originale CCU Zentralen? Ich habe es eben vorhin auf meiner RaspberryMatic ausgetestet und es lief nicht.

Es kamen diese Meldungen:

Mehr? set SID=%%M
Mehr? set SID=!SID:~2!
Mehr? set SID=!SID:~,-1!
Mehr? rem echo # SID=!SID!
Mehr? )
)

if NOT "!SID!" == "" (
Mehr? echo # login OK
Mehr? echo.
Mehr?
Mehr? set HH=!TIME:~0,2!
Mehr? set MM=!TIME:~3,2!
Mehr? set MM=!MM: =0!
Mehr? set BACKUP="%DATE:~-2%%DATE:~3,2%%DATE:~0,2%-!HH!!MM!-%%I-backup.tar.sbk"
Mehr? echo # create + download backup !BACKUP! ...
Mehr? curl -s -S -v "http://%%I/config/cp_security.cgi?sid=@!SID!@&action=create_backup" -o !BACKUP!
Mehr? echo.
Mehr?
Mehr? echo # dir
Mehr? dir %DATE:~-2%%DATE:~3,2%%DATE:~0,2%*-%%I-backup.tar.sbk | find /i "-backup.tar.sbk"
Mehr? echo.
Mehr?
Mehr? echo # logout ...
Mehr? curl -s -S -d "{\"method\":\"Session.logout\",\"params\":{\"_session_id_\":\"!SID!\"}}" http://%%I/api/raspberrymatic.cgi
Mehr? echo.
Mehr?
Mehr? ) else (
Mehr? echo # login FAILED
Mehr? echo.
Mehr? )
# login OK

# create + download backup !BACKUP! ...
* Closing connection -1
curl: (3) URL using bad/illegal format or missing URL

# dir
Datei nicht gefunden

# logout ...
curl: (3) URL using bad/illegal format or missing URL


Ich habe homematic.cgi mal durch raspberrymatic.cgi ersetzt aber so kommt auch dasselbe. Das wird vermutlich auch nicht reichen... :lol:
Kann man das Skript irgendwie auf RaspberryMatic anpassen?

Und das mit dem USB Stick hat auch nicht funktioniert. Ich habe einen 32GB USB Stick welcher auf FAT32 formatiert ist genommen und habe ihn bei der RaspberryMatic Zentrale eingesteckt aber da war am nächsten Tag kein Backup drauf, muss man das noch irgendwie aktivieren oder so?

Vielen Dank für Eure Hilfe! :)

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Automatisches RaspberryMatic Backup erstellen

Beitrag von Xel66 » 13.11.2023, 10:00

Systemsteuerung/Erweiterte Einstellungen/Systemoptionen/Automatische Backups anhaken. Dort könntest Du auch den Pfad ändern und die Anzahl einstellen (max.30).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

bador
Beiträge: 50
Registriert: 14.07.2023, 08:38
System: CCU
Hat sich bedankt: 8 Mal
Danksagung erhalten: 2 Mal

Re: Automatisches RaspberryMatic Backup erstellen

Beitrag von bador » 13.11.2023, 10:11

Der Haken bei "Automatische Backups" ist automatisch schon drin, aber ich gebe jetzt Mal noch einen anderen Pfad an vielleicht klappt es so.

Vielen Dank! :D

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Automatisches RaspberryMatic Backup erstellen

Beitrag von Xel66 » 13.11.2023, 10:24

bador hat geschrieben:
13.11.2023, 10:11
...aber ich gebe jetzt Mal noch einen anderen Pfad an vielleicht klappt es so.
Wenn Du weißt was Du tust, kannst Du das machen, ansonsten würde ich erst mal schauen, ob der Stick überhaupt korrekt gemountet wurde. Und einfach so stecken und ziehen ist auch eher suboptimal.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „RaspberryMatic“