SSH rsync: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== Einführung in rsync == <code>rsync</code> ist ein Werkzeug zum Kopieren und Synchronisieren von Dateien – lokal oder über das Netzwerk. Im Gegensatz zu…“) |
|||
| Zeile 23: | Zeile 23: | ||
|- | |- | ||
| <code>-P</code> || Fortschrittsanzeige und Resume bei abgebrochenem Transfer | | <code>-P</code> || Fortschrittsanzeige und Resume bei abgebrochenem Transfer | ||
| + | |- | ||
| + | | <code>--delete</code> || Löscht im Ziel Dateien, die in der Quelle nicht mehr vorhanden sind | ||
|} | |} | ||
| Zeile 28: | Zeile 30: | ||
<pre> | <pre> | ||
| − | rsync -avzxP user@server:/quelle/ /ziel/ | + | rsync -avzxP --delete user@server:/quelle/ /ziel/ |
| + | </pre> | ||
| + | |||
| + | === Nur Änderungen werden übertragen === | ||
| + | |||
| + | rsync vergleicht Quelle und Ziel anhand von Dateigröße und Timestamp. Nur Dateien die neu sind oder sich geändert haben werden übertragen. Das macht rsync besonders effizient für regelmäßige Backups oder Synchronisierungen – beim zweiten Lauf werden meist nur ein Bruchteil der Daten übertragen. | ||
| + | |||
| + | Beim ersten Lauf werden alle Dateien übertragen: | ||
| + | |||
| + | <pre> | ||
| + | rsync -avzP user@server:/backup/ /mnt/backup/ | ||
| + | sending incremental file list | ||
| + | dokumente/bericht.pdf | ||
| + | dokumente/praesentation.pptx | ||
| + | fotos/urlaub.jpg | ||
| + | |||
| + | sent 500MB in 2:10 | ||
| + | </pre> | ||
| + | |||
| + | Beim zweiten Lauf – ohne Änderungen – passiert fast nichts: | ||
| + | |||
| + | <pre> | ||
| + | rsync -avzP user@server:/backup/ /mnt/backup/ | ||
| + | sending incremental file list | ||
| + | |||
| + | sent 1.2KB in 0:01 | ||
</pre> | </pre> | ||
| Zeile 45: | Zeile 72: | ||
<pre> | <pre> | ||
rsync -avzP user@server:/backup/dokumente/ /home/user/dokumente/ | rsync -avzP user@server:/backup/dokumente/ /home/user/dokumente/ | ||
| + | </pre> | ||
| + | |||
| + | Mit <code>--delete</code> wird das Ziel zum exakten Spiegelbild der Quelle – Dateien die in der Quelle gelöscht wurden, werden auch im Ziel entfernt: | ||
| + | |||
| + | <pre> | ||
| + | rsync -avzP --delete user@server:/backup/dokumente/ /home/user/dokumente/ | ||
</pre> | </pre> | ||
Aktuelle Version vom 23. April 2026, 05:43 Uhr
Einführung in rsync
rsync ist ein Werkzeug zum Kopieren und Synchronisieren von Dateien – lokal oder über das Netzwerk. Im Gegensatz zu cp überträgt rsync bei wiederholten Läufen nur die Unterschiede, was es deutlich schneller macht.
Die grundlegende Syntax lautet:
rsync [Optionen] Quelle Ziel
Typische Optionen
| Option | Bedeutung |
|---|---|
-a |
Archivmodus – erhält Rechte, Timestamps, Symlinks und Eigentümer |
-v |
Verbose – zeigt alle übertragenen Dateien an |
-z |
Komprimierung während der Übertragung (sinnvoll bei langsamen Verbindungen) |
-x |
Nicht über Dateisystemgrenzen hinausgehen |
-P |
Fortschrittsanzeige und Resume bei abgebrochenem Transfer |
--delete |
Löscht im Ziel Dateien, die in der Quelle nicht mehr vorhanden sind |
Zusammen ergibt sich ein typischer Befehl für die Netzwerkübertragung:
rsync -avzxP --delete user@server:/quelle/ /ziel/
Nur Änderungen werden übertragen
rsync vergleicht Quelle und Ziel anhand von Dateigröße und Timestamp. Nur Dateien die neu sind oder sich geändert haben werden übertragen. Das macht rsync besonders effizient für regelmäßige Backups oder Synchronisierungen – beim zweiten Lauf werden meist nur ein Bruchteil der Daten übertragen.
Beim ersten Lauf werden alle Dateien übertragen:
rsync -avzP user@server:/backup/ /mnt/backup/ sending incremental file list dokumente/bericht.pdf dokumente/praesentation.pptx fotos/urlaub.jpg sent 500MB in 2:10
Beim zweiten Lauf – ohne Änderungen – passiert fast nichts:
rsync -avzP user@server:/backup/ /mnt/backup/ sending incremental file list sent 1.2KB in 0:01
Übertragung über das Netzwerk mit SSH
rsync nutzt für die Netzwerkübertragung standardmäßig SSH. Die Syntax unterscheidet sich vom lokalen Kopieren nur durch die Angabe von Benutzer und Zielrechner.
Vom lokalen Rechner auf einen Server:
rsync -avzP /home/user/dokumente/ user@server:/backup/dokumente/
Vom Server auf den lokalen Rechner:
rsync -avzP user@server:/backup/dokumente/ /home/user/dokumente/
Mit --delete wird das Ziel zum exakten Spiegelbild der Quelle – Dateien die in der Quelle gelöscht wurden, werden auch im Ziel entfernt:
rsync -avzP --delete user@server:/backup/dokumente/ /home/user/dokumente/
Anderen SSH-Port verwenden
Läuft SSH nicht auf Port 22, wird mit -e der SSH-Aufruf angepasst:
rsync -avzP -e "ssh -p 2222" user@server:/backup/ /mnt/backup/
Mit -e lassen sich auch weitere SSH-Optionen übergeben, zum Beispiel ein abweichendes Identity-File:
rsync -avzP -e "ssh -p 2222 -i ~/.ssh/mein_schluessel" user@server:/backup/ /mnt/backup/