Sicheren rsync-Befehl bauen, kopieren, dann ausführen
rsync ist das Standardtool zum Kopieren von Dateien zwischen zwei Orten (lokaler Ordner, anderer Ordner, Remote-Server über SSH) und transferiert nur, was sich wirklich geändert hat. Damit perfekt für Backups, Website-Deploys, NAS-Spiegelung, Sync zwischen zwei Rechnern. Haken: die Kommandozeile hat 50+ Flags, die Reihenfolge zählt, und ein Tippfehler mit `--delete` kann Daten löschen, die du behalten wolltest.
Dieser Builder zeigt den vollen Befehl in einer Live-Vorschau: Preset wählen (deploy, backup, mirror), die Flags toggeln, Source und Destination eintragen, Ergebnis kopieren. Er zeigt den Trailing-Slash-Fallstrick als visuelles Diagramm (`src/` vs. `src` verändert, was kopiert wird), warnt dich bevor du `--delete` ohne `--dry-run` scharfschaltest, und legt den Befehl mit Zeilenumbrüchen aus, damit du ihn vor dem Pasten lesen kannst.
Alles läuft im Browser: nichts wird verschickt, keine SSH-Verbindung gemacht, das Tool baut nur Text. Pastet das Ergebnis in deine eigene Shell, wenn du bereit bist.
So nutzt du das Tool
- Oben Szenario wählen: local zu local, local zu remote (Push über SSH), remote zu local (Pull) oder remote zu remote. Die Platzhalter für Source/Destination passen sich an, damit du das Format kennst.
- Source tippen (Ordner, aus dem kopiert wird) und Destination (wohin es landet). Für Remote-Pfade nimm `user@host:/absolute/path`.
- Auf den Trailing-Slash der Source achten. Mit `/var/www/site/` kopierst du den Inhalt des Ordners. Ohne Slash (`/var/www/site`) kopierst du den Ordner selbst als Unterverzeichnis der Destination. Das Diagramm rechts zeigt, was im aktuellen Zustand passiert.
- Modus wählen: Archive (alles erhalten), Backup (alte Versionen in einem Side-Folder behalten), Mirror (Destination exakt gleich Source, löscht Extras), Deploy (komprimiert, gespiegelt, `.git` skippen) oder Custom zum eigenen Toggeln.
- Transfer-Optionen öffnen, um Kompression (`-z`, nützlich über SSH), Progress (`--progress`), Verbose-Level, Dry Run (`-n`, empfohlen beim ersten Lauf) oder Delete Extras (`--delete`, gefährlich) hinzuzufügen.
- Exclude-Patterns hinzufügen (eines pro Zeile, z. B. `.git`, `node_modules`, `*.log`) und Include-Patterns, wenn rsync gezielt einzelne Dateien in einem sonst ausgeschlossenen Ordner behalten soll.
- Für SSH-Ziele Port und Identity-File (Private Key) in den SSH-Optionen eintragen. Der Builder packt das in `-e "ssh -p N -i path/key"`.
- Vollen Befehl aus dem rechten Panel kopieren und ins Terminal pasten. Immer `--dry-run` zuerst, wenn destruktive Flags an sind.
Wann das nützlich ist
Acht Szenarien, in denen das Vorab-Bauen des rsync-Befehls dich vor bösen Überraschungen rettet:
- Website auf einen VPS deployen. Du hast lokal ein paar Dateien geändert und willst sie auf dem Server haben. `rsync -avz --delete --exclude='.git' --exclude='node_modules' /local/site/ user@host:/var/www/site/`. Nur geänderte Dateien gehen über die Leitung, die Destination wird identisch zur Source, und deine VCS-Ordner bleiben aus dem Upload draußen.
- Nächtliches Backup eines Home-Ordners auf ein NAS. NAS mounten, dann `rsync -avh --delete /home/me/ /mnt/nas/backup/me/`. Nach dem ersten Lauf (der alles kopiert) braucht jeder weitere Lauf Sekunden, weil nur Diffs übertragen werden.
- Server-Log-Dump zur Analyse runterziehen. `rsync -avz --progress user@prod:/var/log/app/ ./logs/`. Das `--progress`-Flag zeigt pro Datei eine ETA, nützlich bei einem 5-GB-Dump.
- Fotos von einer SD-Karte holen. `rsync -avh --progress /Volumes/SDCARD/DCIM/ ~/Pictures/2026/`. rsync verifiziert jede Datei nach dem Kopieren, anders als ein simples Drag-and-Drop im Finder, das eine Datei stillschweigend abschneiden kann, wenn die Karte zu früh rausgezogen wird.
- DB-Dump zwischen zwei Servern spiegeln. `rsync -avz --partial --append --bwlimit=5000 server-a:/dumps/ server-b:/dumps/`. Das Bandbreitenlimit verhindert, dass der Transfer den Office-Uplink sättigt. `--partial --append` lässt dich fortsetzen, wenn die SSH-Verbindung in der Mitte eines 50-GB-Dumps abreißt.
- Dotfiles zwischen Laptop und Desktop syncen. `rsync -avh --exclude-from=excludes.txt ~/dotfiles/ desktop:~/dotfiles/`. Einfacher als git, wenn du kein Repo willst, schneller als per Hand zu kopieren.
- Eine Destination säubern, die aus dem Sync gelaufen ist. Die Destination hat Dateien, die die Source nicht mehr hat. `rsync -avn --delete /src/ /dest/` (mit `-n` für Dry Run) listet exakt, was entfernt würde. Sieht es richtig aus, `-n` weg und scharf laufen lassen.
- Server auf neue Hardware migrieren. `rsync -avzAX --numeric-ids --delete /` von der alten Kiste zur neuen (über SSH, als root, mit Vorsicht) erhält Permissions, ACLs und Extended Attributes, damit der neue Server in denselben Zustand bootet.