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

OptionBeschreibung
-aArchivmodus (rekursiv, erhält Attribute)
-vAusführliche Ausgabe
-zKomprimiert Daten während der Übertragung
-PZeigt Fortschritt, behält Teilübertragungen
--deleteLöscht Dateien im Ziel, die in der Quelle fehlen
--dry-runSimuliert die Übertragung ohne Änderungen
--excludeSchließ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.