Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Autor
Logo

Status

STABLE

Version0.21
Kompatibilität

LB 0.2.3LB 1.0

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

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

Probleme

Loxone Miniserver Firmware mindestens 8.3.2.22

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! 

 Version History...

Inhalt

 


Kompatibilität

Umlaute im Passwort

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

LoxBerry 1.0: Obwohl LoxBerry 1.0 Umlaute und Sonderzeichen unterstützt, nutzt die aktuelle Version von Miniserverbackup für die Abwärtskompatibilität zu LoxBerry 0.2.x die neuen Funktionen nicht. Daher dürfen bislang weiterhin keine Sonderzeichen und Umlaute bei den Miniserver-Anmeldedaten enthalten sein.


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

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

Konfigurationsoptionen

 

  • [MSBACKUP]
    • AUTOBKP - Diese Option schaltet das automatische Backup (nach Zeitplan) ein oder aus. Mögliche Werte: 0,1
    • CRON - Diese Option gibt den Zyklus/Interval an. Mögliche Werte: 1min, 30min, 60min, 1d, 1w, 1m
    • SUBFOLDER - Diese Option gibt an in welchem Unterordner das Plugin installiert ist.  z.B. miniserverbackup
    • SCRIPTNAME - Diese Option gibt an wie das Script heisst. z.B. miniserverbackup
    • MAXFILES - Diese Option gibt an, wie viele alte Backups maximal aufgehoben werden sollen. z.B. 5
    • DEBUG - Diese Option gibt die Logdatei-Stufe an. Mögliche Werte: 0, 1, 2

Die Optionen werden automatisch vom Webinterface gesetzt.

Download

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. Lokalen FTP-Port aus dem Miniserver auslesen. (HTTP) (Es wird dringend empfohlen den lokalen FTP-Port auf 21 zu belassen!)
  6. Inkrementelles Herunterladen der Daten via FTP (log, prog, sys, stats, temp, update, web und user)
  7. Kopieren des letzten ZIPs, und Synchronisieren des ZIP-Files mit der neuen Sicherung (7-ZIP)
  8. Verschieben des 7-ZIP Files in das Download-Verzeichnis des Plugins
  9. Löschen der älteren Backups

Es wird versucht, das Backup für jeden konfigurierten Miniserver durchzuführen.

Die Backups können manuell oder durch den Auftragsplaner (cron) ausgeführt werden.

Zurückspielen eines Backups

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. Lokal liegen sie auf dem LoxBerry in /opt/loxberry/webfrontend/html/plugins/miniserverbackup/files/ 

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

bzw. für Windows 10: 

%USERPROFILE%\Documents\Loxone\Loxone Config\

 

Anschließend entpackt man das ZIP-Archiv mit dem kostenlosen 7-Zip in den oben genannten Ordner (Entpacken nach...) . Das Backup steht nun unter dem Menüpunkt Wartung → SD-Karte formatieren als Auswahl zur Verfügung bzw. bei aktuelleren Versionen von LoxoneConfig unter folgendem Menüpunkt: 

Hinweise bei der Umstellung von Versionen <=0.19 auf >0.20

Backup-Ziel

Aufgrund eines Fehlers wurde bis v0.19 das Backup pro Miniserver in ein Verzeichnis 001_, 002_ usw. erstellt. Da dieser Fehler nun korrigiert ist, liegen die Backups nun unter 001_<MS-Name> (der Name, der im LoxBerry für die Miniserver konfiguriert ist). Die bisherigen Backups im alten Verzeichnis werden 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

Ab Version 0.20 wird das Format 7z (von 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 Daten liegen auf dem LoxBerry im Ordner /opt/loxberry/webfrontend/html/plugins/miniserverbackup/files/

Miniserver-Abstürze

Die Download-Library wurde von wget auf lftp gewechselt. Bei lftp sind sämtliche Einstellungen getroffen, sodass der Download so langsam und schonend wie möglich stattfindet, um die Last am Miniserver zu reduzieren. Das ist auch der Grund, warum das erstmalige Backup so lange dauert.

Durch das inkrementelle Update reduzieren sich die weiteren Miniserver-Zugriffe aber von mehreren tausend auf zwei Dutzend. 

Performance

Das erste Backup dauert aufgrund des eingebremsten 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, und auch nur die Änderungen ins 7Z-Archiv gespeichert. Das inkrementelle Backup der oben gezeigten 2-MS-Umgebung dauert ca. 90 Sekunden.

Fehler melden

Fehlerberichte bitte direkt im Repository auf GitHub melden.

Das Plugin überträgt Authentifizierungsdaten für den Miniserver in leserlicher Form im Netzwerk. Wer Zugriff auf das Netzwerk hat, könnte die Daten möglicherweise mitlesen.

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

  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

13 Kommentare

  1. Peter Bazala sagt:

    Frage:

    Wie schwierig wäre es mit Loxberry und einem Kartenleser ein fertiges Loxone Image zu erstellen?


    Hintergrund:

    Kunde hat Loxberry mit Kartenleser und mit SD Karte drin, vor Ort → MS Karte def → Ich loge mich am Loxberry ein (http oder ssh) Plugin schreibt die Daten vom letzten Backup auf die SD Card → wenn fertig nimmt Kunde die Karte aus dem Loxberry Leser und schiebt sie in den MS→ Voila MS funktioniert wider

    oder wenn das nicht geht, das schon eine mit dem Projekt Vor-Formatierte Karte im Leser ist wo dann nur noch die Änderungen vom Backup drauf geschoben werden.

    oder besteht die Möglichkeit die Backup-Daten wider mit ftp auf den MS zu schieben?


    Gibt es da irgendeine Möglichkeit?


    LG


  2. Das geht nicht weil da auch andere Sachen drauf sind, die nicht gesichert werden.

  3. Hallo, habe heute das Plugin installiert, jedoch kann ich kein Backup machen. 

    Changelog beigefügt. Kann mir jemand sagen wo der Fehler ist.

    Lg 

    <OK> 2018-10-20 19:23:28 : 1 Miniserver insgesamt - Starte Backup mit Script /opt/loxberry/webfrontend/cgi/plugins/miniserverbackup/bin/createmsbackup.pl (Version V0.21)</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Starte Backup von Miniserver 1 (Loxone_Miniserver)</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Versuche Miniserver-Firmware-Version auszulesen</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Miniserver-Version:10.0.9.24</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Versuche lokale Miniserver-IP auszulesen</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Miniserver-IP (LAN/lokal):192.168.XXX.XX</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Benutze folgenden FTP-Port:21</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Backup-Lauf ohne bestehendem Backup. Neues Archiv wird erstellt.</OK>
    <OK> 2018-10-20 19:23:28 Miniserver #1: Beginne mit dem Herunterladen der Daten</OK>
    <ERROR> 2018-10-20 19:56:48 Miniserver #1: ERR#2006: Fehler beim Speichern von: /log Versuch 1 von 5 (Errorcode: 34304)</ERROR>
    1. „Klassiker“ bei Sonderzeichen im Miniserver-Kennwort.

      Das MS-Backup unterstützt (im Gegensatz zum LB selbst) noch keine Sonderzeichen.

      1. @ Christian Fenzl

        Herzlichen Dank für die Hilfe  Dachte es sei mit dem letzten Update behoben worden. Lg 

        1. Da gabs doch seit einem Jahr kein Update mehr...? 

          1. Ich werde das mal wieder in Angriff nehmen.

  4. 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. Reto sagt:

      Hallo, ja das geht mit jedem NAS. Einfach eine Freigabe erstellen mit deinem NAS, so dass per SAMBA darauf zugegriffen werden kann. Und dann gemäss meiner Beschreibung im Loxberry diese Freigabe mounten. Es braucht auch keinen User loxberry, du kannst einfach alles entsprechend deiner Konfiguration adaptieren.

      1. Aber halt nur mit der angegebenen Ordnerstruktur? Also IP des Nas und dann Backup usw...

        1. Muss ich im Plugin eigentlich nix einstellen? Der erkennt das automatisch?

          1. Reto sagt:

            Das Plugin hat damit nichts zu tun. Wir verändern hier etwas an der Einstellung im Linux. Der Ordner, wo das Backup ist, wird einfach auf die NAS Freigabe gemountet. In deinem Fall einfach in der fstab den Pfad er Freigabe entsprechend anpassen: //IP_NAS/Backup/miniserverbackup. Backup und miniserverbackup sind nur Beispiele, du kannst das beliebig anpassen.

  5. 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