Server-Backups mit rsync
Wenn Sie von regelmäßigen Server-Backups absehen, haben Sie kaum eine Möglichkeit, verlorene Dateien wiederherzustellen. Sicherungskopien sollten daher stets eine wichtige Rolle in Ihrer Serverplanung spielen. Zu den zahlreichen verfügbaren Backup-Lösungen gehört auch das Synchronisierungs-Tool bzw. -Protokoll rsync.
Cloud Backup von IONOS
Maximaler Schutz für Ihre Unternehmensdaten: Einfache Backups für Cloud-Infrastruktur, PCs und Smartphones, inklusive persönlichem Berater!
Was ist rsync und wozu wird es verwendet?
Hinter dem Namen rsync verbirgt sich ein Netzwerkprotokoll für die Synchronisierung von Dateien, das aus dem Jahr 1996 stammt und unter anderem von Andrew Tridgell, dem Hauptverantwortlichen des SAMBA-Projekts, entwickelt wurde. Zusätzlich zu dem Protokoll existiert ein gleichnamiges Tool, das die Kommunikation über selbiges ermöglicht. Die GPL-lizenzierte Anwendung kann kostenfrei verwendet werden und überträgt Daten von einem Quellverzeichnis in das gewünschte Zielverzeichnis – lokal oder über ein öffentliches Netzwerk. Dabei werden Dateigröße und Erstellungszeit aller Dateien in Quell- und Zielordner verglichen, sodass bei jeder Synchronisation nur veränderte Dateien kopiert werden müssen. Aus diesem Grund gilt der rsync-Backup-Vorgang als inkrementelle Backup-Variante, die den Vorteil hat, dass sie schnell ausgeführt werden kann und wenig Speicherplatz in Anspruch nimmt.
rsync ist für alle gängigen UNIX-Betriebssysteme wie OS/2, Linux oder macOS verfügbar. Auf der Basis des API-Wrappers Cygwin ist es auch unter Microsoft Windows nutzbar.
Zu den typischen Einsatzszenarios von rsync zählen neben der Datensicherung und der Generierung sogenannter Spiegelserver (komplette Server-Abbilder) auch der Datenabgleich in Unternehmen mit verschiedenen Standorten und schwacher Datenanbindung. Insbesondere letztere Funktion wird heute aber fast ausschließlich von modernen Cloud-Technologien übernommen – auch, weil eine schwache Datenanbindung immer seltener vorliegt.
Die wichtigsten rsync-Optionen im Überblick
rsync-Backups zeichnen sich durch ihre hohe Effizienz aus. Der inkrementelle Ansatz sorgt für eine minimale Netzauslastung, was insbesondere bei großen Dateien von Vorteil ist – egal, ob die Änderungen an diesen Dateien groß oder nur sehr gering sind. Als Kommandozeilen-Tool wird rsync standardmäßig über das Terminal bedient – bzw. über die Eingabeaufforderung, wenn Sie rsync auf einem Windowsgerät verwenden. Die Eingaben haben dabei immer folgende Syntax:
rsync -(-)Optionen Quellpfad Zielpfad
Als Quell- und Zielpfad sind das jeweilige Ausgangsverzeichnis sowie das Verzeichnis anzugeben, in das rsync die Sicherheitskopie ablegen soll. Mithilfe der Optionen, die wahlweise per Buchstabe abgekürzt oder ausgeschrieben werden, definieren Sie die individuellen Einstellungen für Ihre rsync-Backups. Die wichtigsten Parameter, die sich beliebig miteinander kombinieren lassen, fasst die nachfolgende Tabelle zusammen:
Option | Funktion |
-r, --recursive | rsync-Backup berücksichtigt sämtliche enthaltenen Unterverzeichnisse |
-u, --update | Anweisung, Dateien zu überspringen, die im Zielverzeichnis neuer als im Ausgangsverzeichnis sind |
-c, --checksum | Unterscheidung von Quell- und Zieldateien anhand von Prüfsummen |
-l, --links | Symbolische Verknüpfungen werden als solche kopiert (und nicht als Dateien) |
-p, --perms | Berechtigungen der Dateien werden beibehalten |
-g, --group | Gruppenberechtigungen der Dateien werden beibehalten |
-t, --times | Zeitstempel der Dateien (letzte Änderung) werden beibehalten |
-o, --owner | Dateibesitzer wird beibehalten (nur sofern Administrator) |
-D, --devices | Gerätedaten werden beibehalten |
-z, --compress | Automatische Komprimierung der übertragenen Dateien |
--compress-level=NUM | Bestimmung des Komprimierungsgrades; möglich ist ein Wert („NUM“) zwischen 0 (keine Komprimierung) und 9 (maximale Komprimierung) |
-v, --verbose | Ausführlichere Details während des Backup-Prozesses |
-q, --quiet | Ausblendung sämtlicher Details zum Backup-Prozess (mit Ausnahme von Fehlermeldungen) |
-a, --archive | Archivierungsmodus, der als Standardmodus gilt und identisch mit der Optionskombination -rlptgoD ist |
-n, --dry-run | Testdurchlauf, bei dem keine tatsächlichen Änderungen vorgenommen werden |
-h, --help | Hilfsmenü (nur ohne Angaben von Quell- und Zielverzeichnissen bzw. anderen Argumenten nutzbar) |
--bwlimit=KBPS | Begrenzung der Bandbreite (Kilobytes pro Sekunden); z. B. --bwlimit=30 (Limit von 30 kbit/s) |
--exclude=MUSTER | Ausschluss eines Musters von der Synchronisation; z. B. --exclude Beispielordner (Der Ordner „Beispielordner“ wird nicht synchronisiert.) |
--delete | Löschen aller Dateien, die sich im Zielverzeichnis befinden, aber nicht im Quellverzeichnis vorhanden sind |
--progress | Anzeige der Dauer des rsync-Backups sowie der Übertragungsgeschwindigkeit |
--list-only | Auflistung der Dateien anstelle eines Backups |
--stats | Ausführlicher Bericht über die transferierten Daten (Zahl, Größe) |
--max-size=SIZE | Definition einer maximalen Dateigröße; z. B. --max-size=10MB (Nur Dateien mit einer Größe von bis zu 10 MB werden transferiert.) |
--ignore-errors | Stellt den Abbruch des Backup-Prozesses im Falle eines Fehlers aus |
Einrichtung von rsync-Backups auf Linux-Servern
Um rsync auf Linux-Betriebssystemen einzusetzen, installieren Sie das Protokoll im gleichnamigen Paket und erstellen Ihre Sicherungen mithilfe von Terminal-Befehlen. Alternativ können Sie auf Anwendungen wie Back In Time, rsnapshot (für regelmäßige automatisierte Sicherungen) oder Unison zurückgreifen, die die Steuerung des Backup-Prozesses über ein grafisches Interface ermöglichen. Im Folgenden stellen wir Ihnen am Beispiel von Ubuntu die wichtigsten Schritte bei der Einrichtung von Backup-Prozessen mithilfe von rsync vor:
Standardmäßig ist rsync unter Ubuntu bereits installiert. Sollte dies nicht der Fall sein, holen Sie die Installation über den folgenden Befehl nach:
sudo apt-get install rsync
Ist rsync installiert, nutzen Sie die gewünschten Terminal-Befehle, um Quell- und Zielverzeichnis sowie die Backup-Optionen zu bestimmen. Den Standardmodus („Archive“) führen Sie beispielsweise folgendermaßen aus:
rsync -a Quellverzeichnis Zielverzeichnis
Es ist ratsam, vom Testlauf (-n) Gebrauch zu machen und die Korrektheit der angegebenen Parameter und Verzeichnisse zu überprüfen; falsche Angaben können im ungünstigsten Fall zu Datenverlust führen. Werden einige Dateien während des Prozesses nicht wunschgemäß kopiert, liegt das oft an fehlenden Zugriffsrechten. Versuchen Sie in einem solchen Fall, den Befehl als Administrator auszuführen, indem Sie dem Kommando den Parameter „sudo“ voranstellen.
5 Beliebte rsync-Backup-Szenarien
Wenn Sie die grundlegenden Befehle beherrschen, haben Sie mit rsync ein erstklassiges Werkzeug zum Kopieren von Dateien und Erstellen von Backups zur Hand. Dabei können Sie wahlweise individuelle Kommando-Setups testen und anwenden oder auf bewährte Kombinationen der zur Verfügung stehenden rsync-Parameter zurückgreifen. Besonders beliebt sind beispielsweise folgende rsync-Backup-Szenarien:
Standard-Backup mit dem Archivierungsmodus
Der Archivierungsmodus, der standardmäßig alle Dateien aus dem Quellverzeichnis in das Zielverzeichnis kopiert (inklusive aller Unterverzeichnisse) und dabei sämtliche Berechtigungen, Zeitstempel und Gerätedaten beibehält, ist dank der Kombination diverser Optionen in einem einzigen Parameter in vielen Fällen die passende und einfachste Lösung. Kombinieren Sie den Modus mit dem Parameter –v, erhalten Sie zusätzlich während Backup-Vorgangs ausführliche Statusinformationen.
rsync -av Quellverzeichnis Zielverzeichnis
1-zu-1-Kopie des Quellverzeichnisses
rsync kann nicht nur Dateien von A nach B übertragen, sondern auch 1-zu-1-Kopien von Ordnern oder kompletten Verzeichnissen erstellen. Es werden nach der Standardarchivierung die Dateien gelöscht, die sich vor rsync im Zielordner befunden haben, aber nicht im Quellordner sind.
rsync -av --delete Quellverzeichnis Zielverzeichnis
Backup mit Ausschluss von Dateien eines bestimmten Formats
Wenn Sie ein Backup durchführen möchten, bei dem Dateien in einem bestimmten Format ausgeschlossen werden sollen, können Sie dies mithilfe von --exclude umsetzen. Der Parameter ermöglicht Ihnen, ein individuelles Zeichenmuster zu definieren, das rsync als Indikator dient, eine Datei zu ignorieren. Beim folgenden Code-Beispiel ist es etwa das Textdatei-Format .txt:
rsync -av --exclude'*.txt' Quellverzeichnis Zielverzeichnis
Backup von Dateien mit definierter Mindest- bzw. Maximalgröße
Soll nicht ein bestimmtes Zeichenmuster, sondern die Dateigröße den Ausschlag für eine Nichtberücksichtigung bestimmter Dateien beim rsync-Backup geben, sind die Parameter --max-size bzw. --min-size zu verwenden. Mit dem folgenden Kommando werden nur solche Dateien kopiert, die mindestens 10 MB und maximal 100 MB groß sind:
rsync -av --min-size=10MB --max-size=100MB Quellverzeichnis Zielverzeichnis
Backup inklusive einer Konvertierung des Zeichenformats
Es kann sein, dass Dateien im Zielverzeichnis in einem anderen Zeichenformat benötigt werden – beispielsweise, wenn Sie Daten von einem Mac auf einen Linux-Server übertragen möchten. Das Apple-Gerät verwendet standardmäßig UTF8-MAC, das auf dem Linux-System nicht vorhanden ist und zu Problemen mit Sonderzeichen und Umlauten führen würde. Mit der Option --iconv lässt sich die Zeichenkodierung ganz einfach im Rahmen des rsync-Backup-Prozesses anpassen (im Beispiel von UTF8-MAC auf UTF8):
rsync -av --iconv=UTF8-MAC,UTF8 Quellverzeichnis Zielverzeichnis