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.
Quellen
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
cron – Aufgaben, die von selbst laufen (und warum sie es oft nicht tun)
Nächtliches Backup, wöchentlicher Bericht, stündliche Bereinigung: Fünf Zahlen und ein Befehl reichen. Der häufigste Fehler ist dabei nicht die Zeitangabe, sondern eine Umgebung, die ganz anders aussieht als dein Terminal.
Zwei Listen vergleichen mit comm – wer fehlt, wer ist neu, wer ist in beiden
Welche Dateien fehlen im Backup? Welche Kunden aus der alten Liste stehen nicht in der neuen? Für genau diese Fragen gibt es seit Unix-Urzeiten ein Werkzeug, das kaum jemand kennt – comm vergleicht zwei sortierte Listen und sagt dir in einer Zeile, was nur links, nur rechts oder in beiden steht.
Warum deine Zählvariable nach der Schleife wieder 0 ist – Prozess-Substitution in Bash
Ein Klassiker, der jeden einmal erwischt: Du zählst in einer while-Schleife hoch, und hinterher steht die Variable trotzdem auf 0. Schuld ist eine Subshell hinter der Pipe. Mit Prozess-Substitution behältst du das Ergebnis – und kannst nebenbei zwei Befehle direkt vergleichen.