Der Befehl rsync überträgt Dateien zwischen lokalen und entfernten Systemen über SSH. Im Gegensatz zu scp kopiert rsync nur geänderte Daten, synchronisiert Verzeichnisse und eignet sich für inkrementelle Backups.
Voraussetzungen
Installiere rsync auf beiden Systemen:
Ubuntu/Debian:
sudo apt install rsync
CentOS/Fedora:
sudo yum install rsync
Stelle sicher, dass du SSH-Zugang zum entfernten System hast und beide Benutzer die nötigen Lese- und Schreibrechte besitzen.
Syntax
rsync [OPTIONEN] QUELLE ZIEL
Für SSH-Übertragungen verwendest du das Format benutzer@host:pfad:
# Lokal zu Remote
rsync [OPTIONEN] /lokaler/pfad benutzer@host:/remote/pfad
# Remote zu Lokal
rsync [OPTIONEN] benutzer@host:/remote/pfad /lokaler/pfad
Aktuelle rsync-Versionen nutzen SSH standardmäßig. Die Option -e ssh ist daher nicht mehr nötig.
Dateien übertragen
Kopiere eine Datei auf einen entfernten Server:
rsync -a /opt/backup.zip benutzer@192.168.1.10:/var/backups/
Die Option -a aktiviert den Archivmodus: rekursive Übertragung, Erhalt von Berechtigungen, Zeitstempeln, symbolischen Links und Eigentümern.
Datei mit neuem Namen speichern:
rsync -a /opt/backup.zip benutzer@192.168.1.10:/var/backups/backup-2025.zip
Datei vom Server herunterladen:
rsync -a benutzer@192.168.1.10:/var/www/config.php /home/dom/
Verzeichnisse synchronisieren
Bei Verzeichnissen bestimmt der abschließende Schrägstrich das Verhalten:
Mit Schrägstrich – nur der Inhalt wird kopiert:
rsync -a /home/dom/bilder/ benutzer@server:/backup/bilder/
Ohne Schrägstrich – das gesamte Verzeichnis wird kopiert:
rsync -a /home/dom/bilder benutzer@server:/backup/
Im zweiten Fall entsteht /backup/bilder/ auf dem Zielserver.
Spiegeln mit –delete
Mit --delete werden Dateien im Ziel gelöscht, die in der Quelle nicht mehr existieren:
rsync -a --delete /home/dom/projekt/ benutzer@server:/var/www/projekt/
Vorsicht: Diese Option löscht Daten unwiderruflich. Teste vorher mit --dry-run:
rsync -a --delete --dry-run /home/dom/projekt/ benutzer@server:/var/www/projekt/
Nicht-Standard SSH-Port
Falls SSH auf einem anderen Port läuft, gib ihn mit -e an:
rsync -a -e "ssh -p 2222" /home/dom/daten/ benutzer@server:/backup/
Fortschritt anzeigen
Bei großen Übertragungen zeigt -P einen Fortschrittsbalken und behält teilweise übertragene Dateien bei:
rsync -aP /home/dom/videos/ benutzer@server:/media/videos/
Die Option -P kombiniert --progress und --partial.
Wichtige Optionen
| Option | Beschreibung |
|---|---|
-a | Archivmodus (rekursiv, erhält Attribute) |
-v | Ausführliche Ausgabe |
-z | Komprimiert Daten während der Übertragung |
-P | Zeigt Fortschritt, behält Teilübertragungen |
--delete | Löscht Dateien im Ziel, die in der Quelle fehlen |
--dry-run | Simuliert die Übertragung ohne Änderungen |
--exclude | Schließt Dateien oder Muster aus |
Zusammenfassung
Mit rsync über SSH überträgst du Dateien sicher und effizient. Der Archivmodus (-a) eignet sich für die meisten Anwendungsfälle. Nutze --delete für exakte Spiegelungen und --dry-run zum Testen. Bei großen Datenmengen hilft -P den Überblick zu behalten.