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!