Plugin-Daten
AutorChristian Wörstenfeld
Logo
StatusSTABLE
Version2021.10.17
Min. LB Version1.4.1.1
Release Downloadhttps://github.com/Woersty/LoxBerry-Plugin-miniserverbackup/archive/2021.10.17.zip
BeschreibungDas Miniserverbackup Plugin bietet die Möglichkeit, alle im LoxBerry eingerichteten Loxone Miniserver automatisiert, regelmäßig zu sichern.
SprachenEN, DE
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/79517-miniserverbackup

Miniserverbackup

Mehrsprachen-Unterstützung / Multilanguage Support

Das Plugin unterstützt derzeit die deutsche und englische Sprache.

If someone would like to translate the Plugin into another language, I recommend to subscribe to Issue #33 on GitHub to keep the Translation up2date.

The translation itself can be done easily on your LoxBerry. See Translation Guide for LoxBerry for details.

Kompatibilität

Umlaute im Passwort

LoxBerry 0.2.x miniserverbackup v0.21: Umlaute und Sonderzeichen im Miniserver-Benutzer und -Passwort werden nicht unterstützt.

Die letzte Plugin-Version für LoxBerry Systeme vor 1.4.1.1 ist v0.21! Diese verwendet noch FTP und wird hier nicht mehr beschrieben.

Rechte: Einstellungen in Loxone Config für den verwendeten Benutzer

Damit das Miniserverbackup zugreifen kann, muss der in LoxBerry konfigurierte Benutzer in Loxone Config einer Benutzergruppe angehören, die Config-Zugriff aktiviert hat. Standardmäßig haben nur Benutzer in der Administratoren-Gruppe dieses Recht.

Installation als Videotutorial

Konfigurationsoptionen

  • [MINISERVERBACKUP]
    • BACKUPS_TO_KEEPx - Diese Option gibt an, wie viele Backups vorgehalten werden sollen
    • BACKUP_INTERVALx - Diese Option gibt den Zyklus/Interval in Minuten an. 
    • FILE_FORMATx - Diese Option gibt an, in welchem Format gesichert wird. Derzeit unkomprimiert, zip oder 7-Zip
    • FINALSTORAGEx- Diese Option gibt an, in welchem Verzeichnis das Backup am Ende liegen soll
    • MS_SUBDIRx - Diese Option gibt an, welches optionale Unterverzeichnis ggf. verwendet werden soll
    • LAST_SAVEx- Diese Option gibt an, wann Miniserver x zuletzt gesichert wurde. Format: Timestamp
    • LAST_REBOOTx - Diese Option gibt an, wann Miniserver x zuletzt gestartet wurde und welche Version er hatte. 
    •  MSBACKUP_USE - Diese globale Option schaltet das Plugin ein oder aus
    • MSBACKUP_USE_EMAILS - Diese globale Option konfiguriert Zusammenfassungs eMails. Möglich ist: Ein oder aus oder nur bei Fehler
    • MSBACKUP_USE_NOTIFY - Diese globale Option aktiviert oder deaktiviert die LoxBerry internen Benachrichtigungen unabhänging von der Zusammenfassungs-eMail
    • WORKDIR_PATH - Diese globale Option enthält den Namen des Arbeitsverzeichnisses
    • WORKDIR_PATH_SUBDIR - Diese globale Option enthält den Namen des Unterordners des Arbeitsverzeichnisses
    • EMAIL_RECIPIENT - Diese globale Option enthält die eMailadresse oder Adressen der Empfänger von Zusammenfassungs-eMails

Die Optionen werden alle automatisch von der Benutzeroberfläche aus (Plugin-Administrationsseite) gesetzt. ===== Download ===== * Die neue Version ist über die Update-Funktion oder hier verfügbar.   * Das Plugin wurde für den LoxBerry ab 1.4.1.1 überarbeitet. Die alte Version für LoxBerry 0.2.x ist hier erhältlich: v0.21 * Der Sourcecode ist auf GitHub verfügbar: https://github.com/Woersty/LoxBerry-Plugin-miniserverbackup * Download-Link: https://github.com/Woersty/LoxBerry-Plugin-miniserverbackup/archive/2021.10.17.zip

Warnung für Version 0.2.3

Loxone Miniserver Versionen vor Version 8.3 haben das Problem, dass bei FTP-Transfers der Arbeitsspeicher überläuft. Dies führt zu einem Neustart des Miniservers. Das Problem ist ab Loxone Firmware 8.3.2.22 gelöst. Der Einsatz des Plugins ist für diese Versionen nicht empfohlen! 

===== Funktion des Plugins ===== Das Plugin ist zu komplex um hier die gesamte Funktion im Detail zu beschreiben. Vereinfacht funktioniert es wie folgt: - Prüfen, ob direkte IP oder Hostnamen oder Loxone Cloud-DNS verwendet wird - Wenn Loxone Cloud-DNS verwendet wird, IP und Port beim DNS-Service abfragen - Version aus dem Miniserver auslesen. (HTTP) - Lokale IP aus dem Miniserver auslesen. (HTTP) - Inkrementelles Herunterladen der Daten via HTTP (log, prog, sys, stats, temp, update, web und user) - Verschieben des Backups an den Zielort - Löschen der älteren Backups Es wird versucht, das Backup für jeden konfigurierten Miniserver durchzuführen, bei dem eine Zeit eingestellt ist. Die Backups können manuell oder durch den Auftragsplaner (cron) ausgeführt werden. ===== Zurückspielen eines Backups ===== Hinweis: Das direkte Erstellen einer fertigen microSD Karte ist leider nicht möglich. Die vom Plugin erzeugten Backup-Archive können mit der Software Loxone Config zurück auf eine SD-Karte gespielt werden. Dazu speichert man das gewünschte Backup-Archiv aus dem Webarchiv des LoxBerrys auf dem lokalen Rechner ab und kopiert/verschiebt es in den Backup-Ordner von Loxone Config. Wird der Backup Ordner im Netzwerk freigegeben, kann das Plugin direkt dorthin sichern und eine Rückspielung direkt aus der Loxone Config erfolgen. Dies geht nur, wenn das Format 'unkomprimiert' verwendet wird. Bei ZIP oder 7-Zip ist ein manuelles Entpacken nötig.  <code syntaxhighlighter-pre> %USERPROFILE%\MY Documents\Loxone\Loxone Config\ </code> bzw. für Windows 10:  <code syntaxhighlighter-pre> %USERPROFILE%\Documents\Loxone\Loxone Config\Backups </code> Das Backup steht dann unter dem Menüpunkt Wartung → SD-Karte formatieren als Auswahl zur Verfügung bzw. bei aktuelleren Versionen von LoxoneConfig unter folgendem Menüpunkt zur Verfügung:  ==== Backup-Ziel ==== Das Backup Ziel ist wählbar. Zur Verfügung steht der lokale LoxBerry Speicher, eine Windows (Samba) Freigabe oder ein USB Datenspeicher. Wird der Speicherort geändert, werden die bisherigen Backups im alten Verzeichnis nicht ins neue Verzeichnis verschoben und unterliegen nicht mehr der Aufräumroutine. Wenn du die alten Backups manuell in die neuen Verzeichnisse verschiebst, werden diese bei der Aufräumroutine wieder berücksichtigt. ==== Format 7-ZIP ==== Sollen die Sicherungen komprimiert gespeichert werden, wird das Format 7z (7-Zip) verwendet. Zum Entpacken beim Restore muss daher 7-Zip unter Windows installiert werden. Das 7-Zip Format bietet im Vergleich zu zip wesentliche Vorteile, die wichtigsten sind viel bessere Komprimierung und Multicore-Unterstützung.  |CF's Haus |Speicherplatz (unkomprimiert)|7-ZIP|zip | |Miniserver 1|375 MB |64 MB|98 MB| |Miniserver 2|46 MB |19 MB|23 MB| ==== Inkrementelles Update ==== Das Backup wird vollständig inkrementell durchgeführt. Dabei werden die Daten synchronisiert (im Archiv neue Dateien hinzugefügt, geänderte ersetzt und gelöschte entfernt). Auch die 7z-Backups selbst werden inkrementell aktualisiert. Das inkrementelle Update hat es erforderlich gemacht, die Ordnerstruktur innerhalb des Backups anzupassen: Bisher war im Archiv ein Ordner (Name des Backups) mit den Daten-Unterordnern. Das neue Archiv enthält direkt die Daten-Unterordner. Beim Extrahieren muss daher die 7-Zip-Funktion "Entpacken nach …" gewählt werden. 7-Zip erzeugt dann einen Ordner mit dem Namen des Archivs, der dem Backup-Namen entspricht. ==== Speicherplatz ==== Durch das inkrementelle Backup steigt der erforderliche Speicherplatz am LoxBerry. Es bleibt immer die letzte Sicherung aller konfigurierten Miniserver im Original (unkomprimiert) gespeichert.  Die Vergleichs-Daten liegen auf dem LoxBerry im Ordner /opt/loxberry/data/plugins/miniserverbackup/.currentbackup/ ==== Performance ==== Das erste Backup dauert aufgrund des Gesamt-Downloads sehr lange. Das dabei erstellte 7Z-Archiv wird mit relativ hoher Komprimierung erstellt, was wiederum lange dauert. Ab dem zweiten Backup werden nur noch Änderungen heruntergeladen. ===== Fehler melden ===== Fehlerberichte bitte direkt im Repository auf GitHub melden. ===== Fehlersuche ===== Das Plugin verwendet in der aktuellen Version den LoxBerry-Log-Manager, welcher das Log-Fenster im Plugin ersetzt. Es gibt derzeit 5 Komponenten / Gruppen, welche Logdateien erzeugen.
-der eigentliche Datensicherungs-Prozess (PHP) [Datensicherungen]
-der Konfigurations-Manager (PHP) [Konfigurationsmanager]
-die Administrator-Benutzeroberfläche (Perl) [Miniserverbackup Admin-UI]
-und der Zeitauftrag (CronJob), welcher fix alle 30 Minuten läuft, wenn mindestens ein Miniserver mit einem Sicherungs-Intervall konfiguriert wurde (Shell/Perl) [Miniserverbackup CronJob]
Das Plugin überträgt Authentifizierungsdaten für den Miniserver ab 2019.4.x verschlüsselt im Netzwerk. (In v0.21 unverschlüsselt) ===== Alternativer Pfad zum Verzeichnis der Config-Backup ===== Wer seine eigenen Dateien auf eine andere Partition/ ein anderes physisches Laufwerk verschoben hat, scheitert bei Anwendung der Standardpfade (siehe Zurückspielen eines Backups). Standardmäßig wählt die Config den Ordner
Dokumente\Loxone\Loxone Config um dort die Backups abzulegen -  so könnte der Pfad beispielsweise so aussehen:   <code syntaxhighlighter-pre> [Laufwerksbuchstabe]:\Eigene Dokumente\Loxone\Loxone Config </code> ===== Veränderung und Konsistenz von Backups ===== Anscheinend legt die Config die Backups als reine Kopie der Werte aus den Verzeichnissen des Miniservers an. Durch einen Test hat sich erwiesen, dass Loxone die Konsistenz der Daten, z. B. durch Checksummen aus Metadaten, nicht prüft. Dies kann zum Vorteil gereichen, wenn man es mit Bedacht einsetzt. Der folgende Absatz beschreibt meine Vorgehensweise zur Edition eines Backups - Warnung beachten! Stand 03.09.2017: Nachfolgende Handlung habe ich unter Einsatz der Public Beta 9, Stand Loxone Config 9.0.8.16, eingesetzt. Das Loxberry-Plugin Miniserverbackup 0.18 erstellt täglich ein Backup. Das händische Mischen von Backups ist riskant, da die genauen Konsequenzen nicht klar sind, bisher konnte ich jedoch keine Fehlfunktionen verzeichnen. * Loxberry Miniserverbackup konfiguriert für tägliches Backup, dies erfolgte um 04:20 Uhr. * Miniserver via Config manuell gesichert um 12:54 Uhr. Folglich gab es eine Diskrepanz in den Statistiken die ich nicht hinnehmen wollte, daher habe ich  - das Loxberry-Backup heruntergeladen, - das Loxberry-Backup kopiert und dem Ordner eine Uhrzeit zugewiesen die 2 Stunden in der Zukunft lag. - Anschließend habe ich den Statistikordner aus dem Config-Backup in den manipulierten Ordner des Loxberry-Backups kopiert & ersetzt. - Abschließend das Backup via Config erfolgreich eingespielt. Es erfolgte keine Meldung zu den veränderte Daten oder keine Warnung über mögliche inkonsistente Datierung! Abänderung von Backups erfolgt ausschließlich auf eigene Gefahr! ===== Backup-Ziel auf Synology NAS einrichten  ===== Um eine Synolgoy NAS als Backup-Ziel zu nutzen, müssen folgende Schritte durchgeführt werden:  Das how-to bezieht sich auf DSM 6.2 und im Beispiel konkret auf die Freigabe Backup. Das Einbinden über NFS funktioniert wegen den Rechten nicht, dafür müssten zu viele Änderungen auf dem Loxberry gemacht werden. Deshalb wird Samba verwendet. Synology DSM - User loxberry + Passwort erstellen - User zur Benutzergruppe "http" und "users" hinzufügen - User "Lesen/schreiben"Berechtigungen zum gemeinsamen Ordner Backup geben - Unter Dateidienste muss der SMB-Dienst aktiviert sein - In der Filestation den Unterordner "miniserverbackup" in der Freigabe Backup erstellen. Loxberry (Ab v2019.4.19 nicht mehr nötig, hier Netshares verwenden!) - über SSH (z.B. Putty) am Loxberry anmelden, z.B. so:
ssh loxberry@IP_LOXBERRY - dann mit der Eingabe "su" zum Benutzer (root) wechseln. Dafür das root Superuser Passwort verwenden. - nano /etc/fstab - ————– die folgenden zwei Zeilen einfügen ————–
# DISKSTATION samba mounts
//IP_SYNOLOGY/Backup/miniserverbackup /opt/loxberry/webfrontend/html/plugins/miniserverbackup/files cifs auto,username=loxberry,password=meinloxberryDSMpasswort,vers=2.0,uid=loxberry,gid=loxberry 0 2 - nano beenden mit Ctrl+X und Y für speichern - mount -a