Ordner sicher übertragen und deployen mit rsync
rsync kopiert nur, was sich wirklich geändert hat – ideal fürs Deployen einer Website oder ein schnelles Backup. Mit --dry-run siehst du vorher genau, was passieren würde, bevor etwas überschrieben oder gelöscht wird.
Wenn ich eine Website auf den Server bringe, nutze ich rsync. Der Trick: Es vergleicht Quelle und Ziel und überträgt nur die geänderten Dateien. Der zweite Upload dauert dann Sekunden statt Minuten.
Der Deploy-Befehl
rsync -avz --delete ./website/ user@server:/var/www/site/Die Schalter im Klartext:
-a– Archivmodus: behält Rechte, Zeitstempel und Unterordner bei-v– zeigt, welche Dateien übertragen werden-z– komprimiert unterwegs (schneller über langsame Leitungen)--delete– löscht auf dem Ziel, was in der Quelle nicht mehr existiert (spiegelt also exakt)
Der eine Schalter, der dich rettet: --dry-run
--delete ist mächtig – und gefährlich, wenn du dich im Pfad vertippst. Deshalb starte ich jeden rsync erst mit --dry-run:
rsync -avz --delete --dry-run ./website/ user@server:/var/www/site/Das führt nichts aus, sondern zeigt dir nur, was passieren würde. Sieht die Liste gut aus, lässt du --dry-run weg und schickst es scharf los.
Der Slash am Ende ist kein Zufall
Achte auf den abschließenden Schrägstrich bei der Quelle: ./website/ überträgt den Inhalt des Ordners ins Ziel. ./website (ohne Slash) würde den Ordner selbst hineinlegen – also /var/www/site/website/. Dieser kleine Unterschied ist die häufigste rsync-Verwirrung.
Als Backup funktioniert derselbe Befehl übrigens genauso – einfach ein lokales Zielverzeichnis statt user@server: angeben.
Ich deploye die Websites meiner Kunden genau so – schnell, nachvollziehbar, ohne FTP-Geklicke. Wenn du eine Seite brauchst, die sauber ausgeliefert wird, meld dich über bymw.de.
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
Viele Dateien auf einmal bearbeiten mit find und xargs
find sucht Dateien nach Namen, Alter oder Größe – und mit xargs schickst du die Treffer stapelweise an einen anderen Befehl. So löschst, verschiebst oder konvertierst du hunderte Dateien mit einer Zeile. Inklusive der wichtigsten Sicherheits-Regel.
Im ganzen Projekt suchen mit grep -rn (und warum ripgrep schneller ist)
„Wo steht dieser Text nochmal?" – mit grep -rn durchsuchst du in Sekunden dein ganzes Projekt inklusive Zeilennummern. Und mit ripgrep (rg) geht es noch schneller, weil es .gitignore automatisch beachtet.
429 bei KI-APIs richtig behandeln – Retry mit Exponential Backoff (Bash)
Jede KI-API (Claude, OpenAI, Gemini) drosselt mit HTTP 429, wenn du zu schnell anfragst. Wer sofort stur weiterhämmert, wird noch länger blockiert. So respektierst du den Retry-After-Header und wartest exponentiell.