rsync ist das Schweizer Taschenmesser für Datei-Synchronisation unter Linux. Es überträgt nur Änderungen, komprimiert Daten und arbeitet über SSH. Unverzichtbar für Backups.
Was ist rsync?
rsync (remote sync) kopiert Dateien lokal oder über Netzwerk. Der Clou: Es überträgt nur die Unterschiede zwischen Quelle und Ziel. Bei einem 10 GB Backup mit 100 MB Änderungen werden nur 100 MB übertragen.
Installation
rsync ist meist vorinstalliert. Falls nicht:
apt install rsync # Debian/Ubuntu
dnf install rsync # CentOS/RHELGrundlegende Syntax
rsync [Optionen] Quelle ZielDie wichtigsten Optionen
| Option | Bedeutung | |--------|-----------| | -a | Archiv-Modus (rekursiv, Rechte, Zeiten erhalten) | | -v | Verbose (zeigt was passiert) | | -z | Komprimierung bei Übertragung | | -h | Human-readable (lesbare Größen) | | -P | Fortschritt + Resume bei Abbruch | | --delete | Gelöschte Dateien auch im Ziel löschen | | -n | Dry-run (nur simulieren) |
Lokale Synchronisation
Verzeichnis kopieren
rsync -av /quelle/ /ziel/Wichtig: Der Schrägstrich nach der Quelle ist entscheidend!
rsync -av /quelle/ /ziel/→ Kopiert Inhalt von /quelle nach /zielrsync -av /quelle /ziel/→ Kopiert Ordner /quelle nach /ziel/quelle
Mit Fortschrittsanzeige
rsync -avhP /quelle/ /ziel/Gelöschte Dateien synchronisieren
rsync -av --delete /quelle/ /ziel/Vorsicht: Löscht Dateien im Ziel, die in der Quelle nicht mehr existieren!
Synchronisation über SSH
Auf Remote-Server kopieren
rsync -avz /lokales/verzeichnis/ user@server:/remote/verzeichnis/Von Remote-Server holen
rsync -avz user@server:/remote/verzeichnis/ /lokales/verzeichnis/Mit anderem SSH-Port
rsync -avz -e "ssh -p 2222" /quelle/ user@server:/ziel/Mit SSH-Key
rsync -avz -e "ssh -i /pfad/zum/key" /quelle/ user@server:/ziel/Dateien ausschließen
Einzelne Dateien/Ordner
rsync -av --exclude='*.log' --exclude='cache/' /quelle/ /ziel/Aus Datei
Erstellen Sie eine Datei exclude.txt:
*.log
*.tmp
cache/
node_modules/
.git/Dann:
rsync -av --exclude-from='exclude.txt' /quelle/ /ziel/Praktische Backup-Beispiele
Einfaches Verzeichnis-Backup
rsync -avh --delete /var/www/ /backup/www/Tägliches Backup auf Remote-Server
rsync -avz --delete /var/www/ backup@server:/backup/www/Website-Backup mit Ausnahmen
rsync -avz --delete \
--exclude='wp-content/cache/' \
--exclude='*.log' \
/var/www/wordpress/ /backup/wordpress/Datenbank + Dateien sichern
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/backup/$DATE
mkdir -p $BACKUP_DIR
# Datenbank
mysqldump -u root -p'password' --all-databases > $BACKUP_DIR/db.sql
# Dateien
rsync -av --delete /var/www/ $BACKUP_DIR/www/
rsync -av /etc/ $BACKUP_DIR/etc/
# Alte Backups löschen (älter als 7 Tage)
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;Inkrementelle Backups mit Hardlinks
rsync kann mit Hardlinks platzsparende inkrementelle Backups erstellen:
rsync -av --delete --link-dest=/backup/latest /var/www/ /backup/$(date +%Y%m%d)/
ln -snf /backup/$(date +%Y%m%d) /backup/latestSo werden nur geänderte Dateien neu gespeichert, unveränderte Dateien verweisen auf das vorherige Backup.
Bandbreite begrenzen
rsync -avz --bwlimit=5000 /quelle/ user@server:/ziel/
# 5000 KB/s = ~5 MB/sTrockenlauf (Dry Run)
Bevor Sie --delete verwenden, testen Sie:
rsync -avn --delete /quelle/ /ziel/-n zeigt, was passieren würde, ohne Änderungen durchzuführen.
Zwei-Wege-Synchronisation
rsync ist für Ein-Weg-Sync gedacht. Für Zwei-Wege:
1. Unison: Alternative zu rsync für bidirektionale Sync 2. Syncthing: Kontinuierliche Sync zwischen Geräten
Automatisierung mit Cron
Tägliches Backup um 3 Uhr:
crontab -e0 3 * * * rsync -avz --delete /var/www/ /backup/www/ >> /var/log/backup.log 2>&1Häufige Fehler
"Permission denied"
rsync -avz --rsync-path="sudo rsync" user@server:/etc/ /backup/etc/Verbindung bricht ab
Mit -P können Sie fortsetzen:
rsync -avzP /quelle/ user@server:/ziel/Symlinks werden nicht kopiert
rsync -avL /quelle/ /ziel/ # -L folgt Symlinks
# oder
rsync -av /quelle/ /ziel/ # -a kopiert Symlinks als Symlinksrsync vs. Alternativen
| Tool | Vorteile | Nachteile | |------|----------|-----------| | rsync | Schnell, überall verfügbar | Nur Ein-Weg | | scp | Einfach | Keine Delta-Sync | | rclone | Cloud-Support | Komplexer | | Restic | Verschlüsselung, Dedupe | Mehr Overhead |
Fazit
rsync ist unverzichtbar für Linux-Administration. Die Standardkombination -avz deckt die meisten Fälle ab. Für Backups fügen Sie --delete hinzu (nach Dry-Run-Test!). Kombiniert mit Cron haben Sie ein solides automatisches Backup-System.