Sprachen: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Index / Beiträge / Wie man rsync für Backups verwendet

Wie man rsync für Backups verwendet

Ein leistungsstarkes Tool für die Dateiübertragung erklärt

Veröffentlicht
Aktualisiert
(erstellt )
Geschrieben von
Willem L. Middelkoop
Themen
Freiheit · SSH · Windows · Daten · Anleitung · linux · Netzwerke · Server
Menschliche Version dieses Beitrags
https://willem.com/de/2020-10-30_wie-man-rsync-fur-backups-verwendet/
English
How to use rsync to make backups
Nederlands
Hoe rsync te gebruiken voor backups
Español
Cómo usar rsync para hacer copias de seguridad
Français
Utiliser rsync pour faire des sauvegardes
Italiano
Come usare rsync per fare i backup
Português
Como usar o rsync para fazer cópias de segurança
Papiamentu
Kon usa rsync pa hasi backup
Frysk
Hoe rsync te brûken foar backups
Sprachen
Aus dem englischen Original von einem Sprachmodell in zwei Durchgängen (Übersetzung und Korrektur) mit Glossar und Rechtschreibprüfung übersetzt; noch nicht von einem Muttersprachler gelesen.

Zusammenfassung

Es ist enorm wichtig, Backups deiner Daten zu machen, denn du weißt nie, wann die Katastrophe zuschlägt! Ein leistungsstarkes Tool, das auf allen gängigen Systemen läuft und dir dabei hilft, ist „rsync“. In diesem Beitrag erkläre ich, warum rsync nützlich ist und wie du damit deine eigenen Backups einrichtest.

Volltext

Rsync

Seit es 1996 entstanden ist (von Andrew Tridgell und Paul Mackerras), hat sich rsync zu einem Standardwerkzeug entwickelt. Es ist für gängige GNU/Linux-Distributionen, Apple macOS, FreeBSD, NetBSD, OpenBSD und (über Cygwin oder WSL) auch für Windows verfügbar.

Die wichtigsten Merkmale

Rsync dient meistens dazu, Dateien und Verzeichnisse zwischen zwei Computern zu synchronisieren. Es kann sich per SSH mit einem anderen Computer verbinden und Dateien übertragen. Neben entfernten Computern kannst du mit rsync auch auf externe Festplatten und Netzwerkspeicher (NAS) synchronisieren. Rsync ist beliebt, weil:

  • es unter der GNU General Public License steht und damit freie Software ist: frei wie in „freie Rede“ und wie in „Freibier“
  • sein Algorithmus eine Art Delta-Kodierung ist. Das heißt, es hält den Daten- und Netzwerkverkehr klein, weil es nur die geänderten Teile der Dateien kopiert. Zusätzlich lassen sich die Daten komprimieren, um die Übertragung noch weiter zu verschlanken.
  • es unterbrochene Übertragungen dank Prüfsummen fortsetzen kann. So erkennt rsync Fehler beim Kopieren einer Datei von einem Ort an einen anderen. Unterscheiden sich zwei Dateien nur um ein einziges Bit, sind ihre Prüfsummen verschieden. Mit Prüfsummen lässt sich effizient kontrollieren, ob wirklich jedes Byte richtig am Ziel angekommen ist.

rsync installieren

Unter GNU/Linux, *BSD oder Apple macOS ist rsync wahrscheinlich schon installiert. Unter Windows wirfst du am besten einen Blick auf das Windows-Subsystem für Linux , das dir alle üblichen GNU/Linux-Tools bereitstellt. Statt WSL kannst du auch Cygwin nehmen, um die große Sammlung von GNU- und Open-Source-Tools unter Windows zu installieren.

Typische Verwendung von rsync

rsync nutzt du auf der Kommandozeile, im Terminal. Du gibst den Befehl „rsync“ ein, gefolgt von (optionalen) Flags, einem Quellpfad und einem Zielpfad.

Typischer rsync-Befehl mit den Flags -arvz, einem Mein-Quellverzeichnis und einem Mein-Zielverzeichnis auf einem Server
Typischer rsync-Befehl mit den Flags -arvz, einem Mein-Quellverzeichnis und einem Mein-Zielverzeichnis auf einem Server

Mit den Flags -arvz stellst du rsync so ein:

  • a: „Archiv“-Modus, der Berechtigungen sowie Erstellungs- und Änderungszeiten beibehält
  • r: „rekursiver“ Modus, damit rsync auch Unterordner in den Quell- und Zielverzeichnissen synchronisiert
  • v: „verbose“ sorgt für ausführlichere Ausgaben in der Konsole, sodass du den Fortschritt Zeile für Zeile verfolgen kannst
  • z: „compress“ komprimiert die Daten auf dem Weg zum Zielrechner. Dadurch werden weniger Daten übertragen, praktisch bei langsamen oder volumenbegrenzten Verbindungen
  • --delete: Dateien, die du im Quellverzeichnis löschst, werden auch auf der Gegenseite gelöscht. Sei mit dieser Option vorsichtig!

Es gibt noch viele weitere Flags und Optionen, mit denen du rsync an deine Bedürfnisse anpassen kannst. Alle Optionen findest du in der Manpage von rsync.

Mit rsync Dateien sichern

Im folgenden Beispiel kopiere ich mit rsync ein Verzeichnis („Sample-Files“) von meinem Windows-10-Desktop auf einen entfernten Server. Dank WSL unter Windows habe ich in meinem Windows Terminal eine funktionierende Debian_GNU/Linux-Umgebung.

rsync unter Windows 10 mit WSL
rsync unter Windows 10 mit WSL

Hier erkläre ich den Befehl, den ich verwende:

  • rsync ist der Name des Programms
  • -arvz sind die Flags, mit denen rsync ein archiviertes Backup samt Unterverzeichnissen anlegt und die Daten komprimiert überträgt
  • /mnt/c/Users/mail/Desktop/Sample-files/ ist der Pfad zum Quellverzeichnis, so wie ihn die Verzeichnisstruktur von WSL zeigt. Er zeigt auf meinen Windows-Desktop (der auf dem Laufwerk C: liegt)
  • willem @ store.willem.com:./Backup ist das Ziel. Lies es als „Benutzer willem auf dem Server ‚store.willem.com‘“ und „auf diesem Server“ der Ordner „Backup“ im Homeverzeichnis „./“ des „Benutzers willem“.

Wenn du diesen Befehl zum ersten Mal ausführst, wird der kryptografische Fingerabdruck des entfernten Servers angezeigt. So stellst du sicher, dass du mit deinem Server sprichst. Hacker können sich dann nicht unbemerkt als dein Server ausgeben (der Fingerabdruck ist für jeden Server einzigartig). Ändert sich dieser Fingerabdruck, weigert sich rsync, Dateien zu übertragen. Das ist wichtig, denn deine Backups an ein x-beliebiges Ziel zu kopieren wäre ein mögliches Datenleck!

Verbindest du dich per SSH ohne schlüsselbasierte Anmeldung, wirst du nach deinem Passwort gefragt. Das ist in Ordnung, wenn du die Übertragung von Hand startest. Willst du sie aber automatisieren, richtest du besser eine schlüsselbasierte Anmeldung ein (mit dem praktischen Befehl „ssh-copy-id“). Dein Computer kann sich dann sicher am entfernten Rechner anmelden, ohne dass du jedes Mal ein Passwort eintippen musst.

Mit rsync Dateien von meinem Windows-10-Desktop über SSH auf einen Debian GNU/Linux-Server kopieren (mit WSL)
Mit rsync Dateien von meinem Windows-10-Desktop über SSH auf einen Debian GNU/Linux-Server kopieren (mit WSL)

Kann rsync sich erfolgreich verbinden, ermittelt es als Nächstes, welche Dateien übertragen werden müssen. Hast du das Flag „-v“ gesetzt, siehst du den Fortschritt Zeile für Zeile. Ist die Übertragung abgeschlossen, endet rsync mit einer Zusammenfassung.

Inkrementelle Übertragungen

Der Clou von rsync: Inkrementelle Übertragungen beherrscht es von Haus aus. Wenn du ein paar neue Dateien hast und denselben rsync-Befehl noch einmal ausführst, überträgt es nur die Dateien, die wirklich übertragen werden müssen.

Nachdem ich das Milchstraßenfoto zu meinen Beispieldateien hinzugefügt habe, starte ich rsync erneut: Es überträgt inkrementell und kopiert nur die neue Datei
Nachdem ich das Milchstraßenfoto zu meinen Beispieldateien hinzugefügt habe, starte ich rsync erneut: Es überträgt inkrementell und kopiert nur die neue Datei

Im Screenshot siehst du, dass rsync die neue Datei automatisch erkannt hat. Nur sie wurde auf den entfernten Server übertragen. Das spart Bandbreite, Zeit und Rechenleistung. Es funktioniert mit neuen und mit geänderten Dateien.

Optional kannst du das Flag „--delete“ verwenden, damit lokale Löschungen im Zielverzeichnis nachvollzogen werden. So entsteht ein perfektes Spiegelbild deiner lokalen Dateistruktur. Für Backups solltest du darauf eher verzichten (du könntest Dateien versehentlich löschen).

Übertragungen und Backups automatisieren

rsync ist „nur ein Terminalbefehl“, du kannst es also leicht in eigenen Skripten verwenden. Stell dir ein Skript als Sammlung von rsync-Befehlen vor, die „Quell“- und „Ziel“-Verbindungen zwischen deinen Dateien und den jeweiligen Backup-Orten festlegen.

Dein Skript kannst du so planen, dass es automatisch an einem bestimmten Wochentag zu einer bestimmten Uhrzeit läuft. Unter GNU/Linux, *BSD und macOS nimmst du dafür cron. Unter Windows gibt es die App „Aufgabenplanung“.

Fazit

Mit rsync überträgst du Dateien von deinem Computer effizient, sicher und inkrementell auf ein anderes System. Es kann ein entscheidendes Werkzeug in deinem Backup-Plan sein.

Es ist kostenlos und weit verbreitet. Seine Leistung und Zuverlässigkeit sind allgemein anerkannt. Es gibt wirklich keine Ausrede, deine Backups nicht ordentlich einzurichten!

Maschinenformate dieser Seite