Dateibasiertes ioBroker-Backup mit Versionierung und Übertragung auf FTP- oder NFS-Server

  • Hallo zusammen,

    das Thema "Backup" ist ja hier derzeit hochaktuell. Ein Komplettbackup der gesamten SD-Karte benötige ich nicht, da ich nach der Installation per Win32Image ein komplettes Image der Karte gezogen habe und bei einem Totalcrash dieses Image neu aufspielen werde.

    Wichtig ist mir aber, dass die täglichen Änderungen versioniert gesichert werden, d.h. Fullbackup, dann x Tage ein inkrementelles Backup und dann wieder von vorn. Zwei komplette Backupsätze werden immer vorgehalten.

    Da ich mich schon seit gefühlten Ewigkeiten mit Un*x und auch mit Linux befasse, habe ich seit -zig Jahren auf diversen Linux-Maschinen (auch auf meinem Webspace) ein kleines Script im Einsatz, das ein Dateibackup erstellt und anschliessend die Backupdateien per FTP oder NFS auf andere Server übertragen kann. Es ist ein uraltes Script namens reoback, was mal auf Sourcefourge zu finden war. Für meine Belange hat es immer hervorragend funktioniert, da es die Linux-Bordmittel wie z. B. tar zur Archivierung nutzt und recht einfach zu installieren und konfigurieren ist.

    Für den ioBroker hab ich das Ganze minimal angepasst: in den Konfigurationsdateien habe ich die ioBroker-typischen Pfade eingefügt und vor dem Start des Backups jeweils ein ioBroker-internes Backup durchgeführt, dessen Dateien dann mitgesichert werden. Weiterhin wird mit Linux-Shellkommandos ein Eintrag im Logfile des ioBrokers erzeugt, der dann im ioBroker-Admin zu sehen ist:

    schimmer-media.de/index.php?attachment/828/

    Im Admin 3.x kann man einfach im Dropdown auf den Pfeil klicken und dann "Backup" auswählen.

    Da ich auf meinem NAS sichere, das u. a. auch einen NFS-Server bietet, sehe ich die Backupdateien direkt nach Übertragung auf das NAS in einem WIndows-Share:

    schimmer-media.de/index.php?attachment/829/


    Die Installation ist vergleichsweise simpel, man kommt aber nicht umhin, auf Linuxebene Konfigurationsdateien (Textdateien) mit Editoren wie nano oder vim zu editieren. Die Handhabung dieser Editoren sollte dem geneigten Bastler geläufig sein ;)

    Wer testen möchte:

    1. auf dem Raspi einloggen und sudo eingeben

    2. cd /opt

    3. Download der vorkonfigurierten Backuplösung reoback von meinem Webserver:

    wget http://www.frickelmaster.de/smarthome/reoback-iobroker.tgz

    4. Auspacken des Archivs:

    tar xzf reoback-iobroker.tgz

    5. cd reoback

    6. Nötige Verzeichnisse für Backup und Mountpoint für NFS anlegen:

    ./mkdirs.sh

    7. cd conf

    8. Die Einstellungen für das Programm anpassen:

    nano settings.conf

    oder

    vi settings.conf

    Folgende Parameter können/müssen in der Datei settings.conf angepasst werden:

    backupdays = 3

    Anzahl der Tage eines Umlaufs für das Backup, d.h. am 1. Tag Fullbackup und dann 2 Tage incremental

    keeplocalcopy = 1

    1 = Backupdateien auf der SD-Karte des Raspi speichern

    0 = Backupdateien nach dem Übertragen auf den FTP- oder NFS-Server vom Raspi löschen

    remotebackup = 1

    1 = Dateien übertragen auf FTP oder NFS

    0 = nur lokales Backup auf die SD-Karte des Raspi

    rbackuptype = NFS

    NFS = Backup auf NFS-Server

    FTP = Backup auf FTP-Server

    remotehost = arminsnas.fritz.box

    Adresse des FTP- oder NFS-Servers, auf den gesichert werden soll. FQDN oder IP-Adresse

    nicht wichtig, wenn nur lokal gesichert werden soll

    remotepath = /Public/Backups/iobroker-backup

    Pfad auf dem FTP- oder NFS-Server

    Wenn man auf einem FTP-Server sichern möchte, muss man noch die in den # eingeschlossenen Zeilen editieren:

    ftpuser = backup (führendes # unbedingt entfernen!)

    Benutzername auf dem FTP-Servers

    ftppasswd = zY123XFu (führendes # unbedingt entfernen!)

    Passwort für den Account auf dem FTP-Server

    Nach den Änderungen Datei im Editor speichern und Editor verlassen.


    Im Ordner conf befindet sich zusätzlich die Datei files.conf. Hier sind die Ordnernamen hinterlegt, deren Inhalt gesichert werden soll. Wer noch weitere Sicherungen vom Raspi machen möchte, kann hier zusätzliche Zeilen analog zu den vorhandenen anfügen.

    Sobald die Dateien angepasst wurden, kann man schonmal von Hand überprüfen, ob das Ganze wie vorgesehen funktioniert:

    ./run_reoback.sh


    Die Backupdateien findet man dann auf dem Raspi im Ordner /home/backup (wenn der Pfad nicht geändert wurde). Wurde auch eine Übertragung auf einen FTP- oder NFS-Server konfiguriert, dann sollten die Dateien übertragen worden sein. Ansonsten Zugriffsdaten bzw. -rechte checken :)

    Klappt alles wie gewünscht, kann man die Ausführung des Backupscripts zeitgesteuert automatisch über die Crontab ausführen lassen:

    crontab -e

    Dort am Ende dann das hier einfügen:

    05 3 * * * root sh /opt/reoback/run_reoback.sh


    Unbedingt alle Leerzeichen so übernehmen, sonst gibt's Probleme!

    Den Zeitpunkt der Ausführung des Backups bestimmen die ersten beiden Stellen. "05 3" steht für 3:05 Uhr. Möchte man um 2:30 Uhr das Backup ausführen lassen, müsste dort "30 2" stehen.


    Wie gesagt, reoback funktioniert bei mir schon seit Ewigkeiten richtig gut... bin gespannt, ob's jemand ausprobiert. Feedback wäre prima!

  • hey, hab das jetzt mal gestestet aber leider bekomme ich die Fehlermeldung das er im ordner mnt/iobroker-backup/data nicht existiert. muss ich den manuell anlegen?

    oder wo liegt hier jetzt das Problem?

    Eigentlich soll er das doch mit der mkdirs Datei erzeugen oder nicht?

    2 Mal editiert, zuletzt von Tipe1965 (15. Februar 2018 um 11:50)

  • Nee, erzeugt wird /mnt/iobroker-backup als Mountpoint. Normalerweise sollte das Script dann nach dem Mounten (NFS!) den nötigen Ordner selbst anlegen - die erforderlichen Zugriffsrechte natürlich vorausgesetzt.

    Hast Du es mit NFS oder per FTP probiert?

  • Hab eben nochmal geguckt... bei mir wird das Backup wie vorgesehen zunächst lokal auf "/home/backup" erstellt. Dort wird ein Ordner mit dem Tagesdatum erstellt, in dem die Sicherungsdateien (.tgz) abgelegt werden. Nach Erstellen wird nur dieser "Tagesdatum"-Ordner auf das NAS per NFS hochgeladen.

    Es gibt auf dem NAS keinen Ordner "./data", der existiert nur unter "/home/backup/data" auf dem Raspi. Er enthält Daten für reoback, nach dem sich die Backupzyklen (full, incremental) usw. richten. Der Ordner sollte an sich nur lokal existieren.

    Hast Du ggf. ausser dem NFS-Pfad auch noch den Pfad /home/backup und /home/backup/data geändert? Dann besser wieder zurückändern ;) Für das NFS-Share braucht man nur den "remotepath".

  • also änder ich alles auf Standard auch in der mkdirs.sh und nur in der Settings unter remotepath meinen nfs Ordner?

    Korrekt! Sonst schick mir Deinen NFS-Ordner per PN (--> Konversation :-D) und ich lege Dir ne individuell konfigurierte Version auf meinen Server, wenn Du magst.

  • Dann hast Du Schritt 1 nicht ausgeführt... ist ein Berechtigungsproblem auf Deinem Raspi ;)

    --> "1. auf dem Raspi einloggen und sudo eingeben"

  • Hammer Anleitung! Wie in dem Beitrag vom Alexa Adapter schon gesagt, steht das nun auf meiner ToDo fürs Wochenende. Vielleicht fang ich später schonmal an das neue System auf die Karte zu machen.

    Hoffe du hast am Wochenede nix vor :D:D:D:P

  • als root crontab -e bzw. sudo crontab -e sollte aber klappen...

    Die Backups werden dann als .tgz-Dateien auf dem NFS-Share oder dem FTP-Server abgelegt und können unter Windows z. B. mit 7Zip geöffnet werden. Sollte die komplette Installation des ioBrokers versterben, so legt man einfach das letzte Vollbackup ins /opt-Verzeichnis und gibt

    tar xzf <dateiname.tgz>

    ein, dann wird die Backupdatei entpackt und das Verzeichnis ioBroker wiederhergestellt. Wenn es nach diesem letzten Vollbackup noch inkrementelle Sicherungen gegeben hat, so entpackt man die auf gleiche Art und Weise.

  • Hmmm... sollte aber an sich klappen. Hatte aber heute morgen von jemandem gelesen (Julian?), der sein System neu aufbauen will, weil crontab-Einträge nicht funktionieren. Er hat mit dem Image installiert und will jetzt Raspbian nehmen und den ioBroker händisch installieren.

    Mein ioBroker ist manuell aufgesetzt und funktioniert problemlos.

  • Genau ich war das! Hab vor 2 Monaten wie der Raspi kam unwissentlich das normale Raspbian aufgespielt. Bei mir kommt immer der Fehler wenn ich einen Crontab einrichten will (hab ich in dem Beitrag zum regelm. reebot auch gepostet). Hab jetzt auch eine neue SD (vorher 16Gb Class4 und jetzt 32GB Class10) und da mach ich die Lite Variante drauf. Damit wollte ich dann nochmal einen neuen Anlauf starten und direkt das Backup einschließen :)

  • hi,

    mein raspi kann den download nicht finden:(;(:

    rpi-1-server:/opt# wget http://www.frickelm-ster.de/smarthome/reoback-iobroker.tgz

    --2018-04-16 19:38:48-- http://www.frickelm-ster.de/smarthome/reoback-iobroker.tgz

    Auflösen des Hostnamens »http://www.frickelm-ster.de (http://www.frickelm-ster.de)« … 37.17.224.59

    Verbindungsaufbau zu http://www.frickelm-ster.de (http://www.frickelm-ster.de)|37.17.224.59|:80 … verbunden.

    HTTP-Anforderung gesendet, auf Antwort wird gewartet … 404 Not Found

    2018-04-16 19:38:53 FEHLER 404: Not Found.

    gruß jörg

    Raspberry 3b+ 7" Touch Monitor, Intel Nuc mit IOBroker

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!