4.6 KiB
4.6 KiB
rsync - Dateien synchronisieren
Der rsync-Befehl synchronisiert Dateien und Verzeichnisse effizient zwischen verschiedenen Orten (lokal oder über Netzwerk).
Grundsyntax
rsync [OPTIONEN] QUELLE ZIEL
Grundlegende Optionen
Die häufigste Kombination:
rsync -av quelle/ ziel/
-a= archive (behält Rechte, Zeitstempel, Symlinks)-v= verbose (zeigt Details)
Lokale Synchronisation
Verzeichnis synchronisieren
rsync -av /quelle/verzeichnis/ /ziel/verzeichnis/
Wichtig: Trailing Slash / macht einen Unterschied!
rsync -av quelle/ ziel/ # Inhalt von quelle/ nach ziel/
rsync -av quelle ziel/ # quelle/ als Unterordner in ziel/quelle/
Über Netzwerk (SSH)
Zu Remote-Server
rsync -av /lokaler/pfad/ user@server:/remote/pfad/
Von Remote-Server
rsync -av user@server:/remote/pfad/ /lokaler/pfad/
Anderen SSH-Port
rsync -av -e "ssh -p 2222" /lokal/ user@server:/remote/
Wichtige Optionen
Fortschritt anzeigen
rsync -av --progress quelle/ ziel/
Dry-run (simulieren)
rsync -avn quelle/ ziel/
-n= dry-run (nichts ändern, nur anzeigen)
Dateien löschen im Ziel
rsync -av --delete quelle/ ziel/
Löscht Dateien im Ziel, die in der Quelle nicht existieren.
Kompression (für Netzwerk)
rsync -avz quelle/ user@server:/remote/
-z= compress (während Übertragung)
Teilweise übertragene Dateien behalten
rsync -av --partial quelle/ ziel/
Nützlich bei unterbrochenen Übertragungen.
Bandbreite begrenzen
rsync -av --bwlimit=1000 quelle/ ziel/
Begrenzt auf 1000 KB/s.
Dateien ausschließen
Einzelne Muster
rsync -av --exclude='*.tmp' --exclude='.git' quelle/ ziel/
Aus Datei
rsync -av --exclude-from=exclude.txt quelle/ ziel/
exclude.txt:
*.tmp
*.log
.git/
node_modules/
Nur bestimmte Dateien
rsync -av --include='*.pdf' --exclude='*' quelle/ ziel/
Praktische Beispiele
Backup erstellen
rsync -av --delete /home/user/dokumente/ /backup/dokumente/
Backup mit Zeitstempel
rsync -av /quelle/ /backup/backup-$(date +%Y%m%d)/
Nur geänderte Dateien kopieren
rsync -av --update quelle/ ziel/
Überschreibt nur, wenn Quelle neuer ist.
Große Dateien übertragen
rsync -av --progress --partial-dir=.rsync-partial quelle/ ziel/
Backup auf NAS
rsync -av --delete /home/user/ user@nas:/backup/user/
Website hochladen
rsync -avz --delete website/ user@webserver:/var/www/html/
Mit Ausschlüssen
rsync -av --delete \
--exclude='node_modules' \
--exclude='.git' \
--exclude='*.log' \
projekt/ /backup/projekt/
Inkrementelles Backup
#!/bin/bash
CURRENT=/backup/current
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
rsync -av --delete --link-dest=$CURRENT /quelle/ /backup/$TIMESTAMP/
rm -f $CURRENT
ln -s $TIMESTAMP $CURRENT
Erstellt platzsparende Backups durch Hardlinks.
Rechte und Eigentümer
Rechte bewahren
rsync -av quelle/ ziel/ # Standard mit -a
Als Root mit Original-Eigentümer
sudo rsync -av quelle/ ziel/
Nur als aktueller User
rsync -rlptv quelle/ ziel/
Ohne -o und -g (Owner und Group).
Fehler vermeiden
Dry-run erst testen
rsync -avn --delete quelle/ ziel/
Prüfe die Ausgabe, bevor du wirklich synchronisierst!
Slash bei Quelle beachten
rsync -av quelle/ ziel/ # Inhalt synchronisieren
rsync -av quelle ziel/ # Ordner synchronisieren
Mit --delete vorsichtig sein
# FALSCH - löscht alles im Ziel!
rsync -av --delete /leerer/ordner/ /wichtig/
# RICHTIG - erst prüfen
rsync -avn --delete quelle/ ziel/
Vergleich mit anderen Tools
| Tool | Geschwindigkeit | Delta-Transfer | Netzwerk | Verschlüsselung |
|---|---|---|---|---|
rsync |
Schnell | Ja | SSH | Via SSH |
scp |
Mittel | Nein | SSH | Ja |
cp |
Sehr schnell | Nein | Nein | Nein |
tar |
Mittel | Nein | Pipe möglich | Optional |
Monitoring
Fortschritt detailliert
rsync -av --progress --stats quelle/ ziel/
Nur Zusammenfassung
rsync -av --stats quelle/ ziel/
Siehe auch
- tar - Archive erstellen
- find - Dateien für Backup finden
- Symlinks - Links bleiben mit -a erhalten
- Dateiberechtigungen - Rechte und Eigentümer nach rsync
- ls - Übertragene Dateien anzeigen