Skip to end of metadata
Go to start of metadata
Autor
Logo

Status

STABLE

Version2019.6.5
Min. LB Version

LB 1.4.1.1

Downloadhttps://github.com/Woersty/LoxBerry-Plugin-miniserverbackup/archive/2019.6.5.zip
Zweck

Das Miniserverbackup Plugin bietet die Möglichkeit, alle im LoxBerry eingerichteten Loxone Miniserver automatisiert, regelmäßig zu sichern. 

LanguagesEN, DE
 Version History...

Inhalt



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.

Besonderheit Trendnet Kamera TV-IP310PI

Wie es aussieht ist ab der Firmware 5.3.x der Zugriff auf das Bild nur noch mit dem admin Benutzer möglich. Bitte beachten!

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/2019.6.5.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:

  1. Prüfen, ob direkte IP oder Hostnamen oder Loxone Cloud-DNS verwendet wird
  2. Wenn Loxone Cloud-DNS verwendet wird, IP und Port beim DNS-Service abfragen
  3. Version aus dem Miniserver auslesen. (HTTP)
  4. Lokale IP aus dem Miniserver auslesen. (HTTP)
  5. Inkrementelles Herunterladen der Daten via HTTP (log, prog, sys, stats, temp, update, web und user)
  6. Verschieben des Backups an den Zielort
  7. 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. 

%USERPROFILE%\MY Documents\Loxone\Loxone Config\

bzw. für Windows 10: 

%USERPROFILE%\Documents\Loxone\Loxone Config\Backups

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 HausSpeicherplatz (unkomprimiert)7-ZIPzip
Miniserver 1375 MB64 MB98 MB
Miniserver 246 MB19 MB23 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:  

[Laufwerksbuchstabe]:\Eigene Dokumente\Loxone\Loxone Config

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 

  1. das Loxberry-Backup heruntergeladen,
  2. das Loxberry-Backup kopiert und dem Ordner eine Uhrzeit zugewiesen die 2 Stunden in der Zukunft lag.
  3. Anschließend habe ich den Statistikordner aus dem Config-Backup in den manipulierten Ordner des Loxberry-Backups kopiert & ersetzt.
  4. 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

  1. User loxberry + Passwort erstellen
  2. User zur Benutzergruppe "http" und "users" hinzufügen
  3. User "Lesen/schreiben"Berechtigungen zum gemeinsamen Ordner Backup geben
  4. Unter Dateidienste muss der SMB-Dienst aktiviert sein
  5. In der Filestation den Unterordner "miniserverbackup" in der Freigabe Backup erstellen.

Loxberry (Ab v2019.4.19 nicht mehr nötig, hier Netshares verwenden!)

  1. über SSH (z.B. Putty) am Loxberry anmelden, z.B. so:
    ssh loxberry@IP_LOXBERRY
  2. dann mit der Eingabe "su" zum Benutzer (root) wechseln. Dafür das root Superuser Passwort verwenden.
  3. nano /etc/fstab
  4. -------------- 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
  5. nano beenden mit Ctrl+X und Y für speichern
  6. mount -a

4 Comments

  1. Ich würde das ganze gerne auf meinem NAS speichern, habe allerdings ein Buffalo NAS, geht das trotzdem analog zu der Synolgie ?

    Ist es auch möglich eine andere Ordnerstruktur zu nutzen ?

    Ich fände es sehr gut wenn man den Ordner einfach frei angeben kann, so wie im Loyberry Backup Plugin

    1. Ab der v2019er Version kann man die am LoxBerry 1.4.0.3 oder höher verfügbaren USB oder Netzwerklaufwerke verwenden.

  2. Falls bei irgendwem die Backups auf ein nicht-dauernd-laufendes System zeigen bzw. es passiert, dass das SMB-Ziel öfters neu gestartet wird als der Loxberry, bietet sich AUTOFS an!

    1. SSH auf Loxberry 
    2. ALS ROOT: (su ausführen)
    3. SECRET SMB Passwort File erstellen
      1. vi oder nano /etc/.smb_secret_backup
      2. username=backup
        password=meinSuperSicheresPasswort

      3. chmod 600 /etc/.smb_secret_backup

    4. Mountpoint erstellen
      1. mkdir /mnt/nas
    5. Automount Configs erstellen
      1. vi /etc/auto.master
        1. Zeile einfügen "/mnt/nas        /etc/auto.nas"
      2. vi /etc/auto.nas
        1. backup -fstype=cifs,rw,credentials=/etc/.smb_secret_backup,uid=1001,iocharset=utf8 ://<IP oder Hostname des NAS>/backup

    6. Automount Service Restarten (ist bereits vorinstalliert)

      1. service autofs restart
      2. service autofs status → zeigt, ob alles geklappt hat
    7. Erstzugriff
      1. cd /mnt/nas/backup
    8. Link für Files auf Backuptarget
      1. cd /opt/loxberry/webfrontend/html/plugins/miniserverbackup/
      2. mv files files_old
      3. ln -s /mnt/nas/backup/LOX_MS_Backup files

    Zugriff probieren (ACHTUNG - das ist extrem komisch am Anfang) kann man durch ein simples cd auf den Ordner /mnt/nas/backup. Dadurch macht das Linux ein Automount, es kommt zu einer kurzen Verzögerung und dann ist plötzlich der Mountpoint da.

    Beim Ersten Versuch gibt es noch keinen Ordner und kein File "backup" - ihr dürft da auch vorher keinen Ordner mit dem Namen anlegen!

    Quellen:

    https://wiki.ubuntuusers.de/Autofs/

    https://wiki.centos.org/TipsAndTricks/WindowsShares