Für Backups unter Linux gibt es ein Werkzeug, das kaum zu schlagen ist: rsync. Es überträgt nur geänderte Daten, arbeitet lokal wie über das Netzwerk und ist blitzschnell. In dieser Anleitung lernst du, wie du mit rsync Backups erstellst – lokal, über SSH und automatisiert per Cron.
Für Backups unter Linux gibt es kaum ein Werkzeug, das rsync das Wasser reichen kann. Es überträgt nur die tatsächlich geänderten Teile einer Datei, arbeitet lokal wie über das Netzwerk und ist dabei erstaunlich schnell und sparsam. Ob du Verzeichnisse spiegelst, ein inkrementelles Backup über SSH auf einen entfernten Server schiebst oder das Ganze per Cron automatisierst – rsync ist die richtige Wahl. In dieser Anleitung lernst du nicht nur die Grundbefehle, sondern auch platzsparende Snapshot-Backups, den sicheren Umgang mit der gefürchteten --delete-Option und wie du eine Sicherung wiederherstellst.
- Warum rsync?
- Ein lokales Backup
- Ein Backup über SSH
- Wichtige Optionen
- Backups automatisieren
- Platzsparende Snapshots mit –link-dest
- Sicher ausschließen und löschen
- Backups prüfen und wiederherstellen
- Übertragung über das Netzwerk optimieren
- Häufige Fragen
- Was genau macht die Option –delete?
- Wie schließe ich einzelne Ordner vom Backup aus?
- Warum rsync statt cp oder tar?
- Fazit
Warum rsync?
rsync kopiert bei wiederholten Läufen nur die Unterschiede statt alles neu. Das spart enorm Zeit und Bandbreite und macht es ideal für regelmäßige Sicherungen – auch auf einen entfernten Server.
Ein lokales Backup
Die Grundform kopiert ein Quellverzeichnis in ein Ziel. Die Optionen -a (Archivmodus, erhält Rechte und Zeitstempel) und -v (ausführlich) gehören fast immer dazu:
rsync -av /home/tobias/ /mnt/backup/tobias/Wichtig: Der abschließende Schrägstrich beim Quellpfad bedeutet „der Inhalt des Ordners“. Ohne ihn würde der Ordner selbst ins Ziel gelegt. Als Ziel eignet sich eine eingebundene Festplatte.
Ein Backup über SSH
rsync sichert genauso einfach auf einen entfernten Server. Dazu gibst du Benutzer und Host mit an – die Übertragung läuft verschlüsselt über SSH:
rsync -av -e ssh /home/tobias/ tobias@server:/mnt/backup/Am komfortabelsten ist das mit einem hinterlegten SSH-Key, dann fragt rsync nicht nach einem Passwort.
Wichtige Optionen
| Option | Wirkung |
|---|---|
-a | Archivmodus (Rechte, Zeiten, Symlinks erhalten) |
--delete | Im Ziel löschen, was in der Quelle fehlt (echte Spiegelung) |
--exclude | Bestimmte Dateien/Ordner ausschließen |
-n / --dry-run | Testlauf, ohne etwas zu ändern |
-z | Daten während der Übertragung komprimieren |
Ein Tipp: Teste jeden neuen Befehl zuerst mit --dry-run, besonders in Kombination mit --delete.
Backups automatisieren
Sein volles Potenzial entfaltet rsync als geplanter Job. Verpacke den Befehl in ein Bash-Skript und lass es per Cronjob regelmäßig laufen – etwa jede Nacht:
0 2 * * * /home/tobias/scripts/backup.sh >> /var/log/backup.log 2>&1Platzsparende Snapshots mit –link-dest
Ein reines Spiegeln überschreibt beim nächsten Lauf die vorherige Sicherung – du hast dann immer nur den aktuellen Stand. Deutlich mächtiger sind inkrementelle Snapshots: Mit der Option --link-dest verweist rsync auf das letzte Backup und legt für unveränderte Dateien nur einen Hardlink an, statt sie erneut zu kopieren.
Das Ergebnis fühlt sich an wie viele vollständige Backups, belegt aber nur den Platz der jeweils geänderten Dateien. So kannst du täglich sichern und trotzdem tagelang zurückgehen, ohne dass der Speicher explodiert. In Kombination mit datierten Zielordnern entsteht so eine saubere Backup-Historie.
- Wenig Speicher: gleiche Dateien liegen nur einmal physisch vor.
- Volle Snapshots: jeder Ordner wirkt wie ein komplettes Backup.
- Schnelle Wiederherstellung: einfach aus dem gewünschten Datumsordner kopieren.
Sicher ausschließen und löschen
Zwei Optionen entscheiden über Erfolg oder Katastrophe. Mit --exclude hältst du unnötige oder heikle Verzeichnisse aus dem Backup heraus, etwa Caches oder temporäre Dateien. Mit --delete entfernt rsync im Ziel alles, was in der Quelle nicht mehr existiert – das hält den Spiegel sauber, kann aber auch Daten unwiderruflich löschen.
Deshalb gilt: Teste jeden neuen --delete-Befehl zuerst mit --dry-run. Dieser Testlauf zeigt genau, was passieren würde, ohne etwas zu verändern. Erst wenn die Ausgabe stimmt, lässt du den echten Lauf folgen. Das kostet Sekunden und rettet im Ernstfall dein ganzes Archiv.
Backups prüfen und wiederherstellen
Ein Backup, das noch nie zurückgespielt wurde, ist nur eine Hoffnung. Die Wiederherstellung mit rsync ist zum Glück einfach: Du drehst schlicht Quelle und Ziel um und kopierst die gewünschten Dateien aus dem Backup zurück. Genauso wichtig ist es, die Sicherung regelmäßig auf Vollständigkeit zu prüfen.
Halte dich außerdem an die bewährte 3-2-1-Regel: drei Kopien deiner Daten, auf zwei verschiedenen Medien, davon eine außer Haus. rsync deckt die Übertragung ab, um die Zeitsteuerung kümmert sich am besten ein automatisierter Ablauf per Cron oder systemd-Timer.
Übertragung über das Netzwerk optimieren
Sicherst du über eine langsame oder geteilte Internetleitung, helfen ein paar Optionen, die Übertragung ressourcenschonend zu halten. So vermeidest du, dass ein nächtliches Backup die Leitung für andere Dienste blockiert oder mitten in der Übertragung abbricht.
| Option | Wirkung |
|---|---|
-z | komprimiert die Daten während der Übertragung |
--bwlimit=5000 | begrenzt die Bandbreite (hier auf ca. 5 MB/s) |
--partial | behält Teilübertragungen, um nach Abbruch fortzusetzen |
-P | zeigt Fortschritt und aktiviert --partial |
Gerade das Kombinieren von --partial mit einem erneuten Aufruf macht rsync robust: Bricht die Verbindung ab, setzt der nächste Lauf dort fort, wo er aufgehört hat, statt alles neu zu übertragen. Für regelmäßige, große Sicherungen ist das Gold wert. Bedenke aber, dass sich die Kompression per -z bei bereits komprimierten Dateien wie Videos oder Archiven kaum lohnt und dann nur unnötig CPU kostet.
Häufige Fragen
Rund um Backups mit rsync gibt es einige wichtige Fragen. Diese Antworten schaffen Klarheit.
Was genau macht die Option –delete?
Sie löscht im Zielverzeichnis alle Dateien, die in der Quelle nicht mehr vorhanden sind, und hält das Backup so als exakten Spiegel. Das ist gewollt, wenn du eine 1:1-Kopie willst – gefährlich, wenn die Quelle versehentlich leer oder falsch ist. Immer vorher mit --dry-run testen.
Wie schließe ich einzelne Ordner vom Backup aus?
Nutze eine oder mehrere --exclude-Angaben, zum Beispiel --exclude='*.tmp' oder --exclude=cache/. Bei vielen Ausnahmen ist eine Ausschlussdatei über --exclude-from=liste.txt übersichtlicher.
Warum rsync statt cp oder tar?
Im Gegensatz zu cp überträgt rsync nur die Unterschiede und kann Übertragungen fortsetzen. Gegenüber tar punktet es damit, dass es direkt über SSH auf entfernte Ziele synchronisiert und einzelne Dateien gezielt aktualisiert, statt jedes Mal ein komplettes Archiv zu schreiben.
Fazit
rsync ist das Schweizer Taschenmesser für Backups: schnell, sparsam und über SSH auch entfernt. Mit -av, gezielten --exclude-Regeln und einem --dry-run vorab bist du auf der sicheren Seite. Automatisiert per Cron sorgt rsync für regelmäßige Sicherungen ganz ohne dein Zutun.

