SSH rsync: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(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/