Unabhängiger Vergleich · keine bezahlten Platzierungen
Startseite / Blog / Technik / rsync: Optionen, die eine destruktive Synchronisierung vermeiden

rsync: Optionen, die eine destruktive Synchronisierung vermeiden

Ein Reverse-Rsync-Cron löscht das Produkt: Nachgestellter Schrägstrich, --delete und geschriebene SRC→DST-Richtung vermeiden eine destruktive Synchronisierung.

Redaktion Hébergeurs.eu 5 Min. Aktualisiert 19 Juli 2026

Freitagabend aktualisiert das Team das Staging: „rsync prod → staging“ mit „--delete“, um das genaue Produkt wiederzugeben. Montagmorgen ist die Inszenierung korrekt – aber bei der Produktion fehlen Dateien. Ein schlecht kommentierter Cron kehrte die Richtung um: Staging to Prod. rsync hat das Produkt gelöscht, um es an das teilweise leere Staging anzupassen.

rsync ist das Tool der Wahl für schnelle Spiegelungen und dateibasierte Bereitstellungen. Es ist auch symmetrisch in seiner Gefährlichkeit: Dieselben Flags, die ordnungsgemäß synchronisiert werden, können jahrelange Dateien in einem Befehl zerstören. Der abschließende Schrägstrich, „--delete“, die SRC→DST-Richtung und Ausschlüsse sind keine Details – sie sind die Grenzen zwischen einer fehlerfreien Aktualisierung und einem P1-Vorfall.

Abschließender Schrägstrich: Die Regel zum Tätowieren

„Bash rsync -av prod:/var/www/ staging:/var/www/

Kopieren Sie den INHALT von /var/www/

rsync -av prod:/var/www staging:/var/www/

erstellt staging:/var/www/www – verschachtelte Verschachtelung


Mit dem abschließenden Schrägstrich auf der Quelle kopiert rsync den **Inhalt** des Verzeichnisses. Ohne Schrägstrich wird der **Ordner selbst** an das Ziel kopiert. Der „www/www“-Fehler ist ein Klassiker des Refresh-Staging.



Dokumentieren Sie die Konvention in jedem Skript: Kommentieren Sie „# SRC=prod:/var/www/ DST=staging:/var/www/“ mit expliziten Pfeilen.



## --dry-run und --delete



**Immer** „-n“ oder „--dry-run“ vor jeder Synchronisierung mit „--delete“. Dann „--itemize-changes“ für eine lesbare Prüfung. Jede „*löschende“ Zeile in der Ausgabe = obligatorische Pause, erneute Leserichtung, datierte Sicherung.



„--delete“ löscht auf dem Ziel, was auf der Quelle nicht mehr vorhanden ist. Nur akzeptabel, nachdem der Probelauf validiert, das Backup-Ziel datiert, die Richtung in Schwarzweiß geschrieben und mit zwei Augenpaaren überprüft wurde.



Niemals „--delete“ auf Cron ausführen, ohne den Exit-Code und die E-Mail-Benachrichtigung zu überwachen, wenn er ungleich Null ist.



## Richtung, Herde und Backup-Verzeichnis



| Brauchen | Sicheres Muster |

| --- | --- |

| Staging aktualisieren | prod → Staging, nur Staging löschen |

| DR-Spiegel | prod → DR, Prüfsumme „-c“ periodisch |

| Bereitstellen | CI-Artefakt, nicht rsync integer prod |



„flock“ auf Cron vermeidet zwei Synchronisierungsüberschneidungen. „--backup --backup-dir=dated/“ vor massivem Löschen – speichert eine zeitgestempelte Kopie der gelöschten Dateien.



Explizite Variable „RSYNC_RSH=ssh“; Harmonisierung der GNU- und BSD-Rsync-Version zwischen Servern vor der Automatisierung.



## Ausschlüsse und Fallstricke



Git versionierte „--exclude-from“-Datei: „.env“, „storage/sessions“, „uploads“, Laufzeitcaches, „node_modules“. Synchronisieren Sie niemals den Cache mit dem Produkt oder Geheimnisse mit dem nicht bereinigten Staging.



„--delete-excluded“ ist extrem gefährlich – vermeiden Sie es, außer in dokumentierten Expertenfällen.



Rsync verbreitet auch Ransomware: Ein Rsync-Spiegel allein ist keine Backup-Strategie. Kombinieren Sie restische oder unveränderliche Borg für die Geschichte; rsync für Spiegelgeschwindigkeit.



## Überwachung und Schulung



Alias „rsync-safe='rsync -av --dry-run --itemize-changes“ für das gesamte Betriebsteam. Trockenlauf entfernen = unterzeichnete bewusste Handlung.



Nach der Synchronisierung: Skript-Diff-Anzahl der Quell-/Zieldateien. Cron-Mail bei Nicht-Null-Exit – klassischer stiller Fehler am Freitagabend.



Onboarding 30 Min.: Trailing-Slash-Quiz, Post-Mortem-Lesung in umgekehrter Richtung. Zwei Crons in entgegengesetzte Richtungen = langfristiger Datenverlust – obligatorische Überprüfung der Architektur.



## Paarversionierung



Rsync-Geschwindigkeit, historisches Restic – dokumentierte Quellwahrheitswiederherstellung.



Zwei entgegengesetzte Cron-Rsync-Richtungen = eventueller Datenverlust – Überprüfung der bidirektionalen Synchronisierungsarchitektur.



## Betriebsüberwachung



Rsync-Onboarding-Exploitation-Training – 30 Minuten vermeidet Vorfälle am Wochenende. Quizübung zum Trailing Slash. Cron-Mail bei Rsync-Exit ungleich Null – stiller Fail-Klassiker am Freitagabend. Dokumentieren Sie die Lücken zwischen dem Versprechen des Hosting-Anbieters und der Messung vor Ort in der vierteljährlichen Überprüfung.



## Vierteljährliche Fortsetzung



Rsync-Onboarding-Exploitation-Training – 30 Minuten vermeidet Vorfälle am Wochenende. Quizübung zum Trailing Slash. Cron-Mail bei Rsync-Exit ungleich Null – stiller Fail-Klassiker am Freitagabend. Dokumentieren Sie die Lücken zwischen dem Versprechen des Hosting-Anbieters und der Messung vor Ort in der vierteljährlichen Überprüfung.



Unterschiedliche GNU- und BSD-rsync-Flags – Versionen vor automatisiertem Cron harmonisieren.



Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.



Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.



:::Hinweis

**Zur Erinnerung.** Trockenlauf + abschließender Schrägstrich + geschriebene Richtung vor irgendetwas „--delete“; Git-Ausschlüsse; rsync-Spiegel + unveränderliches versioniertes Backup.

:::



:::Höhepunkt

**rsync löscht nichts von alleine – bis Sie „--delete“ hinzufügen, ohne den Pfeil noch einmal zu lesen.**

:::



## Entscheide dich und gehe ohne blinden Fleck voran



1. **Alias rsync-safe mit --dry-run** – dry-run entfernen = signierte bewusste Handlung.

2. **Nachgestellter Schrägstrich mit Wasserzeichen** – SRC mit „/“-Inhaltskopie; Ohne „/“ wird eine verschachtelte Verschachtelung erstellt.

3. **Richtung SRC → DST in Kommentaren** – jedes Cron-Skript; Anti-Überlappungs-Herde.

4. **Git-versionierte Ausschlüsse** – .env, Sitzungen, Uploads; niemals --delete-excluded ohne Überprüfung.

5. **Pair rsync Mirror + unveränderliches versioniertes Backup** – Rsync allein verbreitet Ransomware.



Bereitstellung und DR: [Ratgeber](/de/ratgeber/), [Verzeichnis](/de/verzeichnis/), [Vergleich](/de/vergleich/).

## Häufig gestellte Fragen



### Was ändert der letzte Schrägstrich an der Quelle?



Mit `/`: rsync kopiert den Inhalt des Verzeichnisses. Ohne „/“: verschachteltes Unterverzeichnis – klassischer staging/www/www-Fehler.



### Wann ist „--delete“ akzeptabel?



Nach validiertem Probelauf, datiertem Backup, geschriebener SRC→DST-Richtung, Überprüfung mit zwei Augenpaaren. Niemals auf Cron, ohne den Exit-Code zu überwachen.



### Sollten wir Cache und Node_Module ausschließen?



Ja über versioniertes „--exclude-from“. Synchronisieren Sie den Laufzeitcache nicht mit „prod“, „.env“ oder Sitzungen.



### Ersetzt rsync ein versioniertes Backup?



Nein: rsync verbreitet auch Ransomware. Verknüpfen Sie ein unveränderliches Backup (Restic, Borg) mit dem Rsync-Spiegel.



---



Fügen Sie --dry-run standardmäßig zu Ihren rsync-Aliassen hinzu – das Entfernen sollte eine bewusste Handlung sein.

Europäische Hoster vergleichen

Filtern nach Compliance, Standort und Einsatzzweck — dann die Datenblätter öffnen, um den echten Umfang zu prüfen.

Verzeichnis durchsuchen
Blog

Weiterlesen

Alle Artikel →