78 Dokumentationen verfügbar

Wissensdatenbank

Rsync Dateien Synchronisieren

Zuletzt aktualisiert: 11.01.2026 um 12:06 Uhr

Rsync: Dateien effizient synchronisieren

Rsync ist das Standard-Tool für Datei-Synchronisation unter Linux. Es überträgt nur geänderte Teile von Dateien, spart Bandbreite und ist ideal für Backups.

Installation

# Meist vorinstalliert
sudo apt install rsync -y

Grundlegende Syntax

rsync [Optionen] Quelle Ziel

Lokale Synchronisation

# Verzeichnis kopieren
rsync -av /home/user/dokumente/ /backup/dokumente/

# Mit Fortschritt
rsync -av --progress /quelle/ /ziel/

# Trockenlauf (zeigt was passieren würde)
rsync -av --dry-run /quelle/ /ziel/
⚠️ Wichtig: Trailing Slash beachten!
  • /quelle/ = Inhalt von quelle
  • /quelle = Ordner quelle selbst

Wichtige Optionen

Option Bedeutung
-a Archiv-Modus (rekursiv, Rechte, etc.)
-v Verbose (Details anzeigen)
-z Komprimierung
-P Fortschritt + Partial (fortsetzbar)
--delete Gelöschte Dateien auch im Ziel löschen
-n Dry-Run (nur simulieren)
-h Human-readable Größen

Remote-Synchronisation (SSH)

# Zu Remote-Server
rsync -avz /lokales/verzeichnis/ user@server:/remote/verzeichnis/

# Von Remote-Server
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 ~/.ssh/id_rsa" /quelle/ user@server:/ziel/

Backup-Beispiele

# Einfaches Backup
rsync -avh --progress /home/ /backup/home/

# Mirror (exakte Kopie, löscht im Ziel)
rsync -avh --delete /var/www/ /backup/www/

# Mit Ausschlüssen
rsync -avh --exclude='*.log' --exclude='cache/' /var/www/ /backup/

# Ausschluss-Datei
rsync -avh --exclude-from='exclude.txt' /quelle/ /ziel/

exclude.txt Beispiel

*.log
*.tmp
node_modules/
.git/
cache/

Inkrementelle Backups

#!/bin/bash
# Inkrementelles Backup mit Hardlinks

DATUM=$(date +%Y-%m-%d)
QUELLE="/var/www/"
BACKUP="/backup"
LATEST="$BACKUP/latest"
ZIEL="$BACKUP/$DATUM"

rsync -avh --delete \
    --link-dest="$LATEST" \
    "$QUELLE" "$ZIEL"

# Symlink aktualisieren
rm -f "$LATEST"
ln -s "$ZIEL" "$LATEST"

Zwei Server synchronisieren

# Cronjob auf Server A
*/15 * * * * rsync -avz --delete /var/www/ user@serverB:/var/www/

Bandbreite begrenzen

# Limit auf 1 MB/s
rsync -avz --bwlimit=1000 /quelle/ user@server:/ziel/

Checksummen prüfen

# Prüft Dateien per Checksum statt Größe/Zeit
rsync -avc /quelle/ /ziel/

Praktisches Backup-Script

#!/bin/bash

BACKUP_SERVER="user@backup-server"
BACKUP_DIR="/backup/$(hostname)"

rsync -avzh --delete \
    --exclude-from=/etc/rsync-exclude.txt \
    -e "ssh -i /root/.ssh/backup_key" \
    /home /etc /var/www \
    "$BACKUP_SERVER:$BACKUP_DIR/"

echo "Backup abgeschlossen: $(date)"

Weitere Hilfe