Startseite > Datei- und Verzeichnisverwaltung > rsync-exclude

rsync-exclude: Ausschließen bestimmter Dateien/Verzeichnisse bei der Dateisynchronisation

Der Befehl `rsync` ist ein leistungsstarkes Werkzeug zur effizienten Synchronisation von Dateien zwischen lokalen und entfernten Systemen. Insbesondere mit den Optionen `--exclude` und `--exclude-from` können Sie bestimmte Dateien, Verzeichnisse oder übereinstimmende Muster von der Synchronisation ausschließen. Dieser Leitfaden konzentriert sich auf die Ausschlussfunktionen von `rsync` und ist äußerst nützlich, um unnötige Dateiübertragungen zu verhindern und nur bestimmte Daten zu sichern oder zu kopieren.

Übersicht

Die Ausschlussfunktion von `rsync` ist für komplexe Dateisynchronisationsszenarien von entscheidender Bedeutung. Durch das Ausschließen bestimmter Protokolldateien, temporärer Dateien oder Metadaten von Versionskontrollsystemen (.git, .svn) aus dem Synchronisationsziel können Sie die Übertragungszeit verkürzen, Speicherplatz sparen und die Kopie unnötiger Daten vermeiden.

Hauptmerkmale

Dies sind die Kernmerkmale der Ausschlussfunktion von `rsync`.

  • **Ausschluss basierend auf Mustern**: Sie können Dateien oder Pfade basierend auf Dateinamen oder Pfaden mithilfe von Wildcard-Mustern (Glob) ausschließen.
  • **Ausschluss basierend auf Dateilisten**: Sie können Muster, die ausgeschlossen werden sollen, in einer separaten Datei auflisten und verwalten.
  • **Flexible Regelanwendung**: Sie können komplexe Einbeziehungs-/Ausschlussregeln in Kombination mit der Option `--include` definieren.
  • **Leistungsoptimierung**: Reduziert unnötige Dateiübertragungen, um die Synchronisationsgeschwindigkeit zu verbessern.

Wichtige Optionen

Dies sind die wichtigsten Optionen, die im Befehl `rsync` zum Ausschließen von Dateien und Verzeichnissen verwendet werden.

Angabe von Ausschlussregeln

Weitere nützliche Optionen

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`rsync-exclude` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Dies sind praktische Anwendungsbeispiele für die Verwendung von Ausschlussoptionen mit `rsync`.

Bestimmte Dateierweiterungen ausschließen

rsync -av --exclude='*.log' --exclude='*.tmp' /path/to/source/ /path/to/destination/

Synchronisiert Dateien aus dem Quellverzeichnis in das Zielverzeichnis und schließt dabei `.log`- und `.tmp`-Dateien aus.

Bestimmte Verzeichnisse ausschließen

rsync -av --exclude='node_modules/' --exclude='.git/' /path/to/source/ /path/to/destination/

Synchronisiert das Quellverzeichnis und schließt dabei die Verzeichnisse `node_modules` und `.git` aus.

Verwendung einer Ausschlussliste-Datei

rsync -av --exclude-from=exclude_list.txt /path/to/source/ /path/to/destination/

Schließt Elemente von der Synchronisation aus, indem Muster aus der Datei `exclude_list.txt` verwendet werden. **Beispielinhalt von exclude_list.txt:** ``` *.bak /temp_files/ logs/ ```

Nur bestimmte Dateien einschließen und den Rest ausschließen

rsync -av --include='*.conf' --exclude='*' /path/to/source/ /path/to/destination/

Schließt standardmäßig alle Dateien aus und schließt nur Dateien mit der Erweiterung `.conf` ein. Die Reihenfolge von `--include` und `--exclude` ist wichtig.

Bestimmte Dateien beim Synchronisieren mit einem entfernten Server ausschließen

rsync -avz --exclude='.DS_Store' --exclude='cache/' /path/to/local/user@remote_host:/path/to/remote/

Synchronisiert den Inhalt eines lokalen Verzeichnisses mit einem entfernten Server und schließt dabei die Dateien `.DS_Store` und das Verzeichnis `cache/` aus.

Tipps & Hinweise

Dies sind Tipps und Hinweise zur effektiven Nutzung der Ausschlussoptionen von `rsync` und zur Vermeidung potenzieller Probleme.

Verständnis der Musterabgleichregeln

Ausschlussmuster funktionieren gemäß den Filterregeln von `rsync`.

  • **Wildcards**: `*` stimmt mit einer beliebigen Zeichenfolge überein, `?` stimmt mit einem einzelnen Zeichen überein. `**` stimmt über Verzeichnisgrenzen hinweg überein.
  • **Pfade**: Wenn ein Muster mit `/` beginnt, ist es relativ zum Stammverzeichnis des Quellverzeichnisses. Wenn es mit `/` endet, stimmt es nur mit Verzeichnissen überein.
  • **Relative Pfade**: Wenn ein Muster kein `/` enthält, stimmt es auf allen Verzeichnisebenen überein. Beispiel: `--exclude='temp'` schließt sowohl `/path/to/source/temp` als auch `/path/to/source/subdir/temp` aus.

Wichtigkeit der Optionsreihenfolge

Die Optionen `--include` und `--exclude` werden in der Reihenfolge verarbeitet, in der sie in der Befehlszeile erscheinen. Um also bestimmte Dateien einzuschließen und den Rest auszuschließen, müssen Sie zuerst `--include` und dann `--exclude='*'` verwenden.

  • `--include='*.txt' --exclude='*'` (Alle `.txt`-Dateien einschließen, den Rest ausschließen)
  • `--exclude='*' --include='*.txt'` (Alle Dateien ausschließen, auch `.txt`-Dateien werden ausgeschlossen - unerwartetes Ergebnis)

Nutzung von Testläufen (`--dry-run`)

Bevor Sie wichtige Daten tatsächlich synchronisieren, verwenden Sie immer die Option `-n` oder `--dry-run`, um das erwartete Verhalten zu überprüfen. Dies ist sehr effektiv, um unerwünschte Dateiausschlüsse oder -einschlüsse zu verhindern.

  • `rsync -avn --exclude='*.log' /path/to/source/ /path/to/destination/`

Option `-vv` zur Fehlersuche

Wenn Ausschlussregeln nicht wie erwartet funktionieren, hilft die zusätzliche Option `-vv` (verbose) bei der Fehlersuche, indem sie detaillierte Informationen darüber ausgibt, welche Dateien `rsync` überspringt und welche Regeln sie ausgeschlossen haben.

  • `rsync -avv --exclude='*.bak' /path/to/source/ /path/to/destination/`

Gleiche Kategorie Befehle