backup-data

Änderungsstand: 2020-07-31

31.07.2020: *1) Hinweis hinzugefügt, welcher sich auf 2 Befehlszeilen eines Serverneustart bezieht.

04.07.2020: Kleine Änderung, für die Anmeldung am Raspi.

02.07.2020: Einige Erklärungen verständlicher gestaltet.

28.06.2020: Eingeschlichener Fehler im Restore-Code behoben.

Backup und Restore der Datenfiles mit rsync.

Hierfür gibt es 2 Grundlegende Backup-Befehle. Als Beispiel verwende ich den Ordner appdata als Backupquelle, der alle Docker-Config’s beinhaltet. Zuerst lege ich einen Freigabeordner an, worauf das Backup abgelegt wird (/mnt/user/backups/rsappdata).

Backup intern (nur als Beispiel):

sudo rsync -aAXv /mnt/user/appdata/ /mnt/user/backups/rsappdata/

Mit diesem Befehl wird ein Backup des Ordners appdata auf einen Freigabeordner gelegt. Hierbei dauert nur das erste Backup seine Zeit. Alle weiteren Backups werden inkrementell gesichert. Hierbei werden auf dem Backup-Ziel keine Daten gelöscht. Wenn also in der Zwischenzeit Docker entfernt wurden, befinden sich die Config-Files der gelöschten Docker immer noch im Backup-Verzeichnis, auch wenn weitere Backups getätigt wurden. Natürlich dient es nur zu Informationszwecken, um zu sehen, wie rsync funktioniert. Weiter unten zeige ich Beispiele, wie man ein rsync-Backup zu einem anderen Server tätigt.

sudo rsync -aAXv --delete /mnt/user/appdata/ /mnt/user/backups/rsappdata/

Ähnlich zum ersten Befehl werden hier allerding Sachen, die im Quell-Ordner (appdata) gelöscht wurden, auch im Backupordner gelöscht.

Diesen Befehl könnte man auch noch erweitern, indem man gewisse Verzeichnisse angibt, die man nicht im Backup aufnehmen möchte, wie z.B. den Ordner duplicati:

cd && sudo rsync -aAXv --delete --exclude=/duplicati/* /mnt/user/appdata/ /mnt/user/backups/rsappdata/

Möchte man mehrere Ordner ausschließen, wie z.B. duplicati und nginx, sieht das so aus (kombinierbar mit oder ohne –delete):

cd && sudo rsync -aAXv --delete --exclude={/duplicati/*,/nginx/*} /mnt/user/appdata/ /mnt/user/backups/rsappdata/

Restore intern:

sudo rsync -aAXv /mnt/user/backups/rsappdata/ /mnt/user/appdata/

oder

sudo rsync -aAXv --delete /mnt/user/backups/rsappdata/ /mnt/user/appdata/

Backup extern (produktiv):

Als Backupziel benutze ich für diesen Test einen PC mit Debian-Server als Betriebssystem und einer 3TB HDD als Datenlaufwerk. Als Software wurde SSH (während der Installation), cifs-utils, rsync, Samba und MidnightComander installiert. SSH natürlich auf auf aktiv gesetzt.

apt install cifs-utils rsync samba mc

Ordner anlegen:

mkdir /testordner

Rsync am Hauptserver starten:

sudo rsync -a /mnt/user/appdata root@192.168.252.82:/testordner/

root-Passwort eingeben und das Backup wird gestartet. Alles auch hier wieder kombinierbar mit –delete etc.

Nun ist es aber nicht passend für mich, dass ich immer das Passwort eingeben muss. Ich möchte schließlich das Backup automatisieren.

rsync ohne Passworteingabe:

*1) Achtung! Folgende 2 Befehle sind nach einem Serverneustart zu wiederholen! Klingt zwar komisch, ist aber so – jedenfalls bei mir.

Am Hauptserver:

cd && sudo ssh-keygen

3x mit Enter bestätigen.

Folgender Befehl bezieht sich auf den root. Bei einem RaspberryPi als Backup-Server ist das der root-user (in meinem Fall wäre das pi)!

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.252.82

Passwort des Backupservers

Der authorized-Keys befindet sich im /root/.ssh-Verzeichnis.

Jetzt rsync erneut starten:

sudo rsync -a /mnt/user/appdata root@192.168.252.82:/testordner/

Es wird kein Passwort mehr abgefragt.

.

Für meinem Raspi als Backupserver, mit Openmediavault, verwende ich auf dem Hauptrechner folgenden Befehl. Der Benutzer pi muss als Benutzer der Freigabe gesetzt sein (ACL), damit keine unnötigen „time“-Fehler und falsche „permissions“ erscheinen.

Auch hier sind wieder Kombinationen, wie z.B. –delete möglich.

sudo rsync -av /mnt/user/appdata pi@192.168.252.56:/srv/dev-disk-by-label-Extern/Backup-unraid/

Jetzt kann der Befehl als Cron-Job eingetragen werden. Hier steht, wie das geht.

.

Restore extern:

In der Unraid-Console oder im Terminal:

sudo rsync -aAXv pi@192.168.252.56:/srv/dev-disk-by-label-Extern/Backup-unraid/appdata /mnt/user/appdata

.

Quelle:

https://superuser.com/questions/555799/how-to-setup-rsync-without-password-with-ssh-on-unix-linux

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten