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.

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.

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.

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.

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!