Backup mit rsync

Ich gebe es zu, ich war in letzter Zeit faul und hatte seit Januar kein Backup mehr gemacht. Zuletzt verwendete ich dafür das auf Duplicity aufsetzende Déjà Dup, aber bei der letzten Installation meines Laptops hatte ich arge Probleme das Backup wiederherzustellen, da Déjà Dup die Integrität des Backups in Frage stellte und auch häufig crashte. Nach mehrmaligen Versuchen gelang es zwar doch, aber da Déjà Dup das Backup in einem eigenen Format speichert besteht grundsätzlich die Gefahr das Backup nicht wiederherstellen zu können. Der Ubuntu-Entwickler Michael Terry weist auch in einem Blog-Eintrag auf dieses Risiko hin.

My concern stems from the fact that Déjà Dup uses an opaque backup format [1]. Which means that it does not store your data in plain files that you can just copy back into place with the file manager. You’ll need to use Déjà Dup again to restore them [2]. Which is fine if Déjà Dup is working correctly, as it should.

But just from a risk management perspective, I always recommend that people try to have at least one copy of their data in “plain files” format at all times.

USB-Festplatte. Die Syntax von rsync ist simpel:
::: {.highlight} rsync [OPTIONEN] Quelle Ziel :::
USB-Festplatte. Die Syntax von rsync ist simpel:
::: {.highlight} rsync [OPTIONEN] Quelle Ziel :::
USB-Festplatte. Die Syntax von rsync ist simpel:
::: {.highlight} rsync [OPTIONEN] Quelle Ziel :::
USB-Festplatte. Die Syntax von rsync ist simpel:
::: {.highlight} rsync [OPTIONEN] Quelle Ziel :::

ync [OPTIONEN] Quelle Ziel :::

unterschieden wird.
::: {.highlight} rsync -a /home/martin/ /media/martin/USB-Festplatten-UUID/Backup :::
unterschieden wird.
::: {.highlight} rsync -a /home/martin/ /media/martin/USB-Festplatten-UUID/Backup :::
unterschieden wird.
::: {.highlight} rsync -a /home/martin/ /media/martin/USB-Festplatten-UUID/Backup :::
unterschieden wird.
::: {.highlight} rsync -a /home/martin/ /media/martin/USB-Festplatten-UUID/Backup :::

n/ /media/martin/USB-Festplatten-UUID/Backup :::

man
::: {.highlight} rsync -a /home/martin /media/martin/USB-Festplatten-UUID/Backup :::
man
::: {.highlight} rsync -a /home/martin /media/martin/USB-Festplatten-UUID/Backup :::

in /media/martin/USB-Festplatten-UUID/Backup :::

ausführen.

Wie man der manpage entnehmen kann gibt es sehr viele Optionen für rsync. Im vorigen Beispiel wurde die Option -a benutzt, welche die folgenden Optionen beinhaltet:

-r -> Unterverzeichnisse werden mitkopiert (rekursiv)
-l -> symbolische Links werden mitkopiert
-p -> Rechte bleiben erhalten
-t -> Zeiten bleiben erhalten
-g -> Gruppenrechtebleiben erhalten
-o -> Besitzrechte bleiben erhalten (root)
-D -> Gerätedateien bleiben erhalten (root)

Um Besitzrechte und Gerätedateien zu erhalten muss rsync als root ausgeführt werden. Will man nicht nur symbolische Links sondern auch Hardlinks erhalten, so kann man dies durch die Option -H erreichen. Um nach einem Abbruch an der Abbruchstelle fortsetzen zu können kann man die Option -P verwenden. Durch diese Option wird auch der Fortschritt des Vorgangs angezeigt.
Bei einer Übertragung über ein Netzwerk kann man durch -z die Daten komprimiert übertragen und durch -e wählt man die Remote-Shell, z.B. -e ssh.
Bei Aktualisierungen eines Backups kann die Option --delete sinnvoll sein, da sie Dateien die nicht mehr in der Quelle vorhanden sind auch im Ziel löscht. So verhindert man auch, dass Dateien, welche seit dem letzten Backup umbenannt wurden, doppelt im Backup vorkommen. Mit Hilfe der Option -b können veränderte Dateien, auch durch --delete gelöschte Dateien, in einen durch --backup-dir= definierten Backup-Ordner gesichert werden.
Mittels --exclude= kann man Ordner von der Übertragung ausschließen. Dabei ist zu beachten, dass man den Ordner relativ zur Quelle und nicht absolut angeben muss. D.h. wenn unsere Quelle /home/martin ist und wir wollen /home/martin/.gnupg vom Backup ausschließen, müssen wir dies mit --exclude=/.gnupg tun, nicht mit --exclude=/home/martin/.gnupg.
Verwendet man --stats bekommt man am Ende der Übertragung einen Report und mit -v während des Vorgangs die aktuellen Schritte angezeigt.

Ich habe nun meinen home-Ordner wie folgt gesichert:
::: {.highlight} rsync -avP –stats /home/martin /media/martin/USB-Festplatten-UUID/Backup :::
übertragen werden könnte so aussehen:
::: {.highlight} rsync -avPzbe “ssh -p 667” –delete –backup-dir=martin@zweitrechner:/tmp/Backup/Old /home/martin martin@zweitrechner:/tmp/Backup :::
rsync -avPzbe "ssh -p 667" --delete --backup-dir=martin@zweitrechner:/tmp/Backup/Old /home/martin martin@zweitrechner:/tmp/Backup

:::

Weitere Informationen kann man durch man rsync oder diesem LinuxUser-Artikel erhalten.

Warnung: Ich möchte darauf hinweisen, dass ich diesen Artikel hauptsächlich für mich selbst als Gedächtnisstütze geschrieben habe und keine Garantie für Fehlerfreiheit übernehme. Da ich nur einen Rechner habe, konnte ich z.B. das SSH-Beispiel nicht testen. Allgemein würde ich empfehlen, bei so etwas sensiblem wie Backups immer aufmerksam zu sein, das Gehirn einzuschalten und lieber zweimal nachzudenken bevor man handelt.

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.

In den Kommentaren können folgende Formatierungen genutzt werden.