Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

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

Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Baxxy » 03.09.2022, 14:40

Mathias hat mit der 3.2.0 die Ausführung sogenannter "Wartungsscripte" eingeführt und auch ein paar Beispiele gegeben wie man z.B. ...
  • zu einem definierten Zeitpunkt (z.B. jeden Sonntag um 00:13) ein Backup seiner Datenbank erzeugen kann (ging vorher nur recht starr und immer nur zur vollen Stunde)
  • die maximale Anzahl vorgehaltener Backups auf einen definierten Wert halten kann (ging vorher gar nicht mit "Hausmitteln")
Da die Beispiele auf meiner AddOn Installation nicht funktionierten habe ich mich mal drangesetzt und die beiden Scripte etwas "optimiert".

Benutzung:
Der Scriptcode (am Ende des Posts) wird einfach mit einem geeigneten Editor in die "/usr/local/addons/ccu-historian/ccu-historian.config" am Ende eingefügt. Es sollten dann alle selbst gemachten Eingaben/Änderungen nochmal auf Plausibilität geprüft werden. Nach dem speichern der Datei startet der Historian dann automatisch neu.

Bevor es losgeht:
  • es muss natürlich ein Speichermedium vorhanden sein (USB-Stick), besser wäre aber ein Netzwerk-Mount wo dann die Backups landen
  • der "Speicherpfad" muss in beiden Scripten bei...

    Code: Alles auswählen

      // Backup Speicherpfad
            def backupPath = "/media/usb0/ccu-historian_db-backups"
    ...eingetragen werden. Wenn nicht vorhanden, wird das Verzeichnis beim ersten Start vom "Datenbank-Backup-Create-Script" erzeugt.
  • dann kann der Name der Backupdatei im "Datenbank-Backup-Script" angepasst werden.

    Code: Alles auswählen

      // Backup Dateiname
            def fileName = "db-backup"
    An den Namen wird ein Unterstrich, der Zeitstempel und die Endung .zip drangehangen, das Ergebnis sieht dann für das Beispiel so aus:

    Code: Alles auswählen

    Dateiname:
    db-backup_202209031226.zip
    
    Dateiname mit Beispielpfad:
    /media/usb0/ccu-historian_db-backups/db-backup_202209031226.zip
  • als nächstes legt man noch die maximale Anzahl vorgehaltener Backups im "Datenbank-Backup-CleanUp-Script" fest:

    Code: Alles auswählen

      // Anzahl zu behaltener Backup-Dateien
            def keep = 24
  • Und zu guter Letzt überlegt man sich wann die Scripte ausgeführt werden sollen.
    Dazu muss in jedem Script die Cron Expression angepasst werden. Theoretisch ist "alles möglich" was so eine Crontab hergibt, praktisch gibt es aktuell ein Problem was am Ende des Posts im Edit beschrieben ist.

    Code: Alles auswählen

    database.tasks.create_DB_Backup_File.cron="13 13 0 ? * SUN *"
    (Beispiel jeden Sonntag um 00:13:13)
    Hinweise:
    - RaspberryMatic macht (default) um 00:07 das Auto-Backup, daher würde ich das DB-Backup ein paar Minuten später machen.
    - je nach Größe der Datenbank und "Power" des Hostsystems kann das Erzeugen des DB-Backups etwas dauern...
    - daher würde ich das "Datenbank-Backup-CleanUp-Script" 30-60min nach dem "Datenbank-Backup-Create-Script" laufen lassen
    - für Cron Ungeübte ist ein Link zu einem "Cron Expression Generator & Explainer - Quartz" in den Kopfzeilen hinterlegt
Mein Beispiel zusammengefasst:
  • Das Datenbank-Backup wird jeden Sonntag um 00:13:13 nach /media/usb0/ccu-historian_db-backups mit folgendem Namensschema "db-backup_202209031226.zip" gespeichert
  • Jeden Sonntag um 00:33:13 werden die Backup Dateien in /media/usb0/ccu-historian_db-backups "gezählt" und die ältesten Dateien gelöscht bis die definierte Maximalanzahl erreicht ist. Lässt man das so wöchentlich laufen werden nun erstmal 24 Wochen-Backups (ca. 6 Monate) erstellt, danach wird jeweils ein neues Backup erstellt und das älteste gelöscht.
Logfile-Ausgabe:
Wenn man das File-Logging im Historian aktiv hat sieht das dann bspw. so aus:
(die Cron-Zeiten sind hier zwecks Demonstration stark gestaucht)

Code: Alles auswählen

2022-09-03 14:26:13|INFO   |*** Datenbank-Backup-Create-Script gestartet ***
2022-09-03 14:26:13|INFO   |Creating backup of database to file /media/usb0/ccu-historian_db-backups/db-backup_202209031426.zip
2022-09-03 14:26:13|INFO   |Datenbank-Backup wurde in Datei /media/usb0/ccu-historian_db-backups/db-backup_202209031426.zip geschrieben.
2022-09-03 14:28:13|INFO   |*** Datenbank-Backup-CleanUp-Script gestartet ***
2022-09-03 14:28:13|INFO   |Anzahl zu behaltener Backup-Dateien: 24
2022-09-03 14:28:13|INFO   |Gefundene Backup-Dateien:
2022-09-03 14:28:13|INFO   |db-backup_202209031426.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021848.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021854.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021900.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021906.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021912.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021918.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021924.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021930.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021936.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021942.zip
2022-09-03 14:28:13|INFO   |db-backup_202209021948.zip
2022-09-03 14:28:13|INFO   |db-backup_202209030833.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031016.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031024.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031032.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031040.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031048.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031056.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031100.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031108.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031116.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031124.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031226.zip
2022-09-03 14:28:13|INFO   |db-backup_202209031326.zip
2022-09-03 14:28:13|INFO   |Loesche db-backup_202209021848.zip
Scriptcode für die "/usr/local/addons/ccu-historian/ccu-historian.config":

Code: Alles auswählen

// *** Datenbank-Backup-Create-Script und Datenbank-Backup-CleanUp-Script
// *** Code basiert auf Mathias Beispielscripten, angepasst von Baxxy
// *** Cron Expression Generator & Explainer - Quartz: https://www.freeformatter.com/cron-expression-generator-quartz.html


// ---> Datenbank-Backup-Create-Script Start --->

database.tasks.create_DB_Backup_File.enable=true
database.tasks.create_DB_Backup_File.cron="13 13 0 ? * SUN *"
database.tasks.create_DB_Backup_File.script={
  // *** Konfiguration ***
  // Backup Speicherpfad
        def backupPath = "/media/usb0/ccu-historian_db-backups"
  // Backup Dateiname
        def fileName = "db-backup"
  // *** Skript ***
    log.info "*** Datenbank-Backup-Create-Script gestartet ***"
	def timestamp = new Date().format("YYYYMMddHHmm")
        def fileName_ts = fileName + "_${timestamp}.zip"
        def path_and_file = backupPath + "/" + fileName_ts
        database.createBackup(path_and_file) 
    log.info "Datenbank-Backup wurde in Datei $path_and_file geschrieben."
}

// <--- Ende Datenbank-Backup-Create-Script <---


// ---> Datenbank-Backup-CleanUp-Script Start --->

database.tasks.clean_DB_Backup_Files.enable=true
database.tasks.clean_DB_Backup_Files.cron="13 33 0 ? * SUN *"
database.tasks.clean_DB_Backup_Files.script={
  // *** Konfiguration ***
  // Anzahl zu behaltener Backup-Dateien
        def keep = 24
  // Backup Speicherpfad
        def backupPath = "/media/usb0/ccu-historian_db-backups"
  // *** Skript ***
    log.info "*** Datenbank-Backup-CleanUp-Script gestartet ***"
    log.info "Anzahl zu behaltener Backup-Dateien: $keep"
    log.info "Gefundene Backup-Dateien:"
        def backupFiles=[]
        new File(backupPath).eachFileMatch(~/.*_.*\.zip/) { file ->
        backupFiles << file
    log.info file.name
  }
        backupFiles.sort({ it.name }).reverse().drop(keep).each { file ->
    log.info "Loesche $file.name"
        file.delete()    
  }
}

// <--- Ende Datenbank-Backup-CleanUp-Script <---
Bei Fragen... fragen. :wink:

Edit:
Es scheint ein Problem mit Komma separierten Zeiten bei den Cron-Expressions zu geben.
Mit folgendem Beispiel startet der Historian nicht mehr vollständig:

Code: Alles auswählen

cron="0 13,43 * ? * *"

(vereinfacht immer um xx:13:00 und um xx:43:00)
Ich habe dazu beim Historian ein Ticket #359 aufgemacht damit Mathias sich das mal angucken kann.

Hinweis: Das Problem ist ab der 3.3.0 behoben!

Edit 2:
>> Hier << geht's zum neueren AiO-Script, das ich aktuell empfehlen würde.
Zuletzt geändert von Baxxy am 18.09.2022, 15:56, insgesamt 3-mal geändert.

McPan
Beiträge: 222
Registriert: 29.11.2021, 07:04
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 12 Mal
Danksagung erhalten: 44 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von McPan » 03.09.2022, 18:59

Danke für's Teilen.
Grüße,
Marco

Elektrische Bauteile funktionieren mit Rauch. Der Beweis: tritt der Rauch aus, funktioniert das Bauteil nicht mehr!
Raspberrymatic @ RPi3b+, HmIP mit RPi-RF-MOD

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

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Baxxy » 04.09.2022, 12:00

Update:
Nach Hinweisen und mit Hilfe von @Henke und @Mathias ist eine neue "All-in-One"-Version entstanden.

Die im ersten Post beschriebene Vorgehensweise bleibt erhalten, also:
- Backup Speicherpfad anpassen
- Backup Dateiname anpassen
- maximale Anzahl vorgehaltener Backups anpassen
- Crontab anpassen

Mit der AiO-Version gibt es nur noch einen Zeitpunkt, bei dem erst "aufgeräumt" und dann das Backup erzeugt wird.
(um Abergläubische nicht zu vergraulen wurde die Beispiel-Ausführungszeit von 00:13:13 auf 00:12:12 verlegt. :mrgreen: )

Datenbank-Backup-CleanUp und Datenbank-Backup-Create Wartungsscript - AiO-Version:

Code: Alles auswählen

// *** Datenbank-Backup-CleanUp und Datenbank-Backup-Create Wartungsscript
// *** AiO-Version V1.0 / 04.09.22
// *** Code basiert auf Mathias Beispielscripten, angepasst von Baxxy, komprimiert von Henke
// *** https://homematic-forum.de/forum/viewtopic.php?f=38&t=75378&p=731360#p731360
// *** Cron Expression Generator & Explainer - Quartz: https://www.freeformatter.com/cron-expression-generator-quartz.html

// ---> Datenbank-Backup-Cleanup und Datenbank-Backup-Create Start --->

database.tasks.create_DB_Backup_File.enable=true
database.tasks.create_DB_Backup_File.cron="12 12 0 ? * SUN *"
database.tasks.create_DB_Backup_File.script={

  // *** Konfiguration ***
  // Backup Speicherpfad
        def backupPath = "/media/usb0/ccu-historian_db-backups"
  // Backup Dateiname
        def fileName = "db-backup"
  // Anzahl zu behaltener Backup-Dateien
        def keep = 24

  // *** Skript *** 
    log.info "*** Datenbank-Backup-CleanUp gestartet ***"
        File fullPath = new File(backupPath)
         if (!fullPath.exists()) {
              fullPath.mkdirs()
    log.info "Backup Speicherpfad nicht vorhanden... Pfad angelegt!"
  }
    log.info "Anzahl zu behaltener Backup-Dateien: $keep"
    log.info "Gefundene Backup-Dateien:"
        def backupFiles=[]
        new File(backupPath).eachFileMatch(~/.*_.*\.zip/) { file ->
        backupFiles << file
    log.info file.name
  }
        backupFiles.sort({ it.name }).reverse().drop(keep).each { file ->
    log.info "Loesche $file.name"
        file.delete()    
  }
    log.info "*** Datenbank-Backup-Create gestartet ***"
	def timestamp = new Date().format("YYYYMMddHHmm")
        def fileName_ts = fileName + "_${timestamp}.zip"
        def path_and_file = backupPath + "/" + fileName_ts
        database.createBackup(path_and_file) 
    //log.info "Datenbank-Backup wurde in Datei $path_and_file geschrieben."
}

// <--- Ende Datenbank-Backup-Cleanup und Datenbank-Backup-Create <---

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Henke » 04.09.2022, 16:34

Da die config bearbeitet wird, habe ich die Gelegenheit genutzt den Link für die "'CCU-Historian Wiki" direkt mit einzubinden.
Die brauche ich immer wieder mal.

Code: Alles auswählen

webServer.menuLinks.link2.text='CCU-Historian Wiki'
webServer.menuLinks.link2.address='https://github.com/mdzio/ccu-historian/wiki'

Mathias
Beiträge: 1794
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 261 Mal
Kontaktdaten:

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Mathias » 05.09.2022, 12:54

Henke hat geschrieben:
04.09.2022, 16:34
... habe ich die Gelegenheit genutzt den Link für die "'CCU-Historian Wiki" direkt mit einzubinden.

Code: Alles auswählen

webServer.menuLinks.link2.text='CCU-Historian Wiki'
webServer.menuLinks.link2.address='https://github.com/mdzio/ccu-historian/wiki'
Das nehme ich mal mit in die Distributionen auf.

ivo-int
Beiträge: 301
Registriert: 13.04.2020, 08:55
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 37 Mal
Danksagung erhalten: 16 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von ivo-int » 19.09.2022, 18:44

Hallo Baxxy

Danke für das Script. :D

Ich habe es bei mir eingefügt. Das erste Backup wurde bereits erstellt.

Gruss Ivo
_______________________________________________________________________________________________________
Raspberrymatic auf einem Raspi 4 4GB (HB-RF-USB-2) mit 2 LAN Gateways,
42 RF Geräte, 4 IP Geräte und 21 Cuxd Geräte, 24 RF Eigenbau Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, HB-TM-Devices-AddOn, CUx-Daemon, CCU-Historian auf einem separaten Raspi

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Bernd-Joras » 05.11.2022, 11:29

Hallo ... (Baxxy)
Ich beschäftige mich gerade mit dem Backup von Historian welcher als Addon auf meiner Raspberrymatic läuft.

Darf ich bitte vorsichtig anfragen wie man die Zeile für ein Backup erstellen muss, welches z.B. zweimal am Tag 6:00 und 18:00 läuft?

Code: Alles auswählen

database.tasks.create_DB_Backup_File.cron="06 00 00, 18 00 00 * SUN , MON, TUE, WED, THU, FRI, SAT  *"
Danke vorab, Bernd
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian


Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Bernd-Joras » 05.11.2022, 22:07

Baxxy ... Uff ... jetzt bin ja enttäuscht .. Du schüttelst das nicht aus dem Handgelenk .... :?

OK, Spass beiseite, wie immer die richtige und passenden Antwort für mich.
Ganau damit (https://www.freeformatter.com/cron-expr ... uartz.html) kann man das nach bedarf einstellen.

D A N K E
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Benutzeravatar
Bernd-Joras
Beiträge: 732
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: Datenbank-Backups zu definierten Zeiten und Reduktion der vorgehaltenen Backups - Historian AddOn ab 3.2.0

Beitrag von Bernd-Joras » 06.11.2022, 09:12

Leider muss ich doch noch einmal nachfragen und um Hilfe bitten.

Was auch immer ich verkehrt mache, es wird mit dem Zusatzskript kein Backup erstellt.
Jedoch wird das Backup mit nachfolgender Zeile in der ccu-historian.config erfolgreich erstellt.

Code: Alles auswählen

 database.backup='/mnt/mnt-FB2/Backups/RBM-HISTORIAN-Backup/db-History_%Y-%M-%D.zip'
Aber nach dem Einfügen des Scripts im laufendem Betrieb, in die „ccu-historian.config“ wird kein Backup durch das zusatzlich Script erstellt.
Schlimmer noch, nach einnem reboot der CCU startet des Historian auch nicht mehr und es gibt beim Aufruf nur den Hinweis wie folgt.

Code: Alles auswählen

Die Konfigurationsdatei vom CCU-Historian ist ungültig (Pfad: /usr/local/addons/ccu-historian/ccu-historian.config)!
Ich habe einmal die gesamte Konfiguration eingestellt, wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht.
(Zum bsseren Testen habe ich einmal eingestellt => alle 30 Min ein Backup => " 0 0,30 * ? * * *" und als Backuppfad den Stick "/media/usb1/backup/")

Kann einer von Euch eventuell den (mein) Fehler sehen ? Danke vorab, Bernd

Code: Alles auswählen

logSystem.fileLevel=Level.INFO
logSystem.fileName='/var/log/ccu-historian-%g.log'
logSystem.fileLimit=1000000
logSystem.fileCount=5
logSystem.binRpcLevel=Level.INFO
database.webEnable=true
database.webPort=8083
database.webAllowOthers=true
webServer.port=8082
webServer.historianAddress='192.168.5.110'
webServer.dir='/usr/local/addons/ccu-historian/ccu-historian/webapp'
webServer.logLevel=Level.INFO
devices.device1.type=CCU2
devices.device1.address='127.0.0.1'
devices.historianAddress='127.0.0.1'
database.dir='/media/usb0/ccu-historian'
devices.device1.plugin2.type=HMWLGW 
devices.device1.plugin1.type=CUXD
historian.metaCycle=1*60*60*1000
historian.bufferTime=4*60*60*1000
base.scriptDir='/usr/local/addons/ccu-historian/ccu-historian'
webServer.menuLinks.link1.text='H2-HighChart'
webServer.menuLinks.link1.address='/custom/h2-highchart/H2-HighChart.gy'
database.backup='/mnt/mnt-FB2/Backups/RBM-HISTORIAN-Backup/db-History_%Y-%M-%D.zip'

// *** Datenbank-Backup-CleanUp und Datenbank-Backup-Create Wartungsscript
// *** AiO-Version V1.0 / 04.09.22
// *** Code basiert auf Mathias Beispielscripten, angepasst von Baxxy, komprimiert von Henke
// *** https://homematic-forum.de/forum/viewtopic.php?f=38&t=75378&p=731360#p731360
// *** Cron Expression Generator & Explainer - Quartz: https://www.freeformatter.com/cron-expression-generator-quartz.html

// ---> Datenbank-Backup-Cleanup und Datenbank-Backup-Create Start --->

database.tasks.create_DB_Backup_File.enable=true
database.tasks.create_DB_Backup_File.cron="0 0,30 * ? * * *"
database.tasks.create_DB_Backup_File.script={

  // *** Konfiguration ***
  // Backup Speicherpfad
        def backupPath = "/media/usb1/backup/"
  // Backup Dateiname
        def fileName = "Historian-db-backup"
  // Anzahl zu behaltener Backup-Dateien
        def keep = 24

  // *** Skript *** 
    log.info "*** Datenbank-Backup-CleanUp gestartet ***"
        File fullPath = new File(backupPath)
         if (!fullPath.exists()) {
              fullPath.mkdirs()
    log.info "Backup Speicherpfad nicht vorhanden... Pfad angelegt!"
  }
    log.info "Anzahl zu behaltener Backup-Dateien: $keep"
    log.info "Gefundene Backup-Dateien:"
        def backupFiles=[]
        new File(backupPath).eachFileMatch(~/.*_.*\.zip/) { file ->
        backupFiles << file
    log.info file.name
  }
        backupFiles.sort({ it.name }).reverse().drop(keep).each { file ->
    log.info "Loesche $file.name"
        file.delete()    
  }
    log.info "*** Datenbank-Backup-Create gestartet ***"
	def timestamp = new Date().format("YYYYMMddHHmm")
        def fileName_ts = fileName + "_${timestamp}.zip"
        def path_and_file = backupPath + "/" + fileName_ts
        database.createBackup(path_and_file) 
    //log.info "Datenbank-Backup wurde in Datei $path_and_file geschrieben."
}

// <--- Ende Datenbank-Backup-Cleanup und Datenbank-Backup-Create <---
2 Standorte mit je RPi3B+ RaspberryMatic 3.75.7.20240420 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Antworten

Zurück zu „CCU-Historian“