MWCodebymw.de ↗
Terminal

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.

#rsync#Deploy#Backup#SSH#Terminal

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 →