GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie rsync zum Ausschließen von Dateien und Verzeichnissen bei der Datenübertragung

Einführung

Rsync ist ein nützliches Linux-Befehlszeilentool, das Dateien und Verzeichnisse synchronisiert und kopiert. Sie können das Tool verwenden, um Daten lokal zwischen Verzeichnissen und Laufwerken oder zwischen zwei Remote-Computern zu synchronisieren.

Die grundlegenden rsync-Befehle in Linux synchronisieren alles von einem von Ihnen angegebenen Ort. In vielen Sicherungsszenarien möchten Sie möglicherweise bestimmte Dateien, Verzeichnisse oder Dateitypen ausschließen.

Folgen Sie den Beispielen in dieser Anleitung, um zu erfahren, wie Sie Dateien oder Verzeichnisse mit rsync ausschließen. Wir listen die häufigsten Ausschluss-Anwendungsfälle auf, um Ihre tägliche rsync-Nutzung abzudecken.

Voraussetzungen

  • Benutzer mit sudo oderroot Privilegien
  • Zugriff auf ein Befehlszeilen-/Terminalfenster
  • Rsync auf Ihrem System installiert

Funktionsweise der rsync-Ausschlussoption

Der --exclude Option mit rsync Der Befehl verwendet relative Pfade zum Quellverzeichnis. Hängen Sie --exclude an Option zu rsync Befehl, gefolgt vom relativen Pfad zu einem Verzeichnis oder einer Datei(en).

Die grundlegende Syntax für die rsync-Exclude-Option sieht so aus:

rsync [OPTIONS] --exclude 'file_or_directory' source/ destination/

Ersetzen Sie source/ mit dem Verzeichnisnamen, den Sie als Quelle für die Datenübertragung an einen anderen Ort verwenden möchten.

Ersetzen Sie Ziel/ mit dem Verzeichnisnamen, den rsync als Zielspeicherort für Ihre Daten verwendet. Wenn das Verzeichnis nicht existiert, erstellt rsync eines für Sie und überträgt die Dateien in dieses Verzeichnis.

Um Dateien an einem entfernten Ort zu sichern, folgen Sie unserer anderen Anleitung, um zu erfahren, wie Sie Dateien mit rsync über SSH kopieren oder übertragen.

Eine bestimmte Datei ausschließen

In den folgenden rsync-Ausschlussbeispielen verwenden wir -a (archivieren ) und -v (ausführlich ) Optionen (-av ). Das -a Die Option synchronisiert Verzeichnisse rekursiv, während Berechtigungen, symbolische Links, Eigentümerschaft und Gruppeneinstellungen beibehalten werden. Das -v flag ist optional und gibt den Fortschritt und Status des rsync-Befehls aus.

Um eine Datei auszuschließen, während der Inhalt eines Ordners mit rsync übertragen wird, geben Sie die Datei und den relativen Pfad an.

Zum Beispiel:

rsync -av --exclude 'testfile1.txt' sourcedir/ destinationdir/

Mit diesem Befehl können Sie die Dateien nach destinationdir kopieren von sourcedir aber schließen Sie testfile1.txt. aus

Wie Sie in der Ausgabe sehen können, testfile1.txt ist nicht auf der Liste.

Führen Sie dazu diesen Befehl aus:

sudo rm -rf destinationdir

Ein bestimmtes Verzeichnis ausschließen

Jetzt wissen Sie, wie Sie rsync --exclude verwenden file verwenden Sie das Tool auf die gleiche Weise, um ein Verzeichnis auszuschließen.

Geben Sie ein Verzeichnis an, das Sie ausschließen möchten (anstelle eines Dateinamens):

rsync -av --exclude 'dir1' sourcedir/ destinationdir/

Dieser Befehl kopiert den Inhalt von sourcedir in Zielverzeichnis und dir1 ausgeschlossen , wie in der Ausgabe zu sehen.

Dateien oder Verzeichnisse basierend auf einem Muster ausschließen

Verwenden Sie ein Sternchen * (Wildcard) beim Definieren eines Datei- oder Verzeichnisnamens, um alles auszuschließen, was dem Muster entspricht.

Zum Ausschließen von Dateien, die mit beginnen testen , führen Sie diesen Befehl aus:

rsync -av --exclude 'test*' sourcedir/ destinationdir/

Alle Dateien und Verzeichnisse, die diesem Muster entsprechen, werden von der Übertragung ausgeschlossen.

Sie können den Platzhalter auch in ähnlicher Weise verwenden, um alle Verzeichnisse auszuschließen, die mit einem bestimmten Muster enden .

Führen Sie diesen Befehl aus, um alle Verzeichnisse auszuschließen, die mit der Nummer 3:

enden
rsync -av --exclude '*3' sourcedir/ destinationdir/

Sie können ein Sternchen vor und nach einem Muster verwenden, um den --exclude zusätzlich zu verfeinern Kriterium.

Einen bestimmten Dateityp ausschließen

Mit dem rsync-Tool können Sie bestimmte Dateitypen ausschließen beim Synchronisieren von Daten. Verwenden Sie ein Sternchen * gefolgt von der Erweiterung des Dateityps, den Sie ausschließen möchten.

Beispielsweise möchten Sie möglicherweise ein Verzeichnis sichern, das viele .iso enthält Dateien, die Sie nicht sichern müssen.

Um einen bestimmten Dateityp auszuschließen, in diesem Fall .iso , führen Sie diesen Befehl aus:

rsync -av --exclude '*.iso' sourcedir/ destinationdir/

Die Ausgabe zeigt, dass rsync .iso nicht übertragen hat Dateien. Wir haben den Inhalt des Quellverzeichnisses im Bild zum Vergleich hinzugefügt.

Dateien nach Größe ausschließen

Während Dateiübertragungen können Sie die minimale oder maximale Größe der Dateien angeben, die Sie ausschließen möchten. Wenn Ihr Quellverzeichnis viele große Dateien enthält, die Sie nicht sichern möchten, verwenden Sie --max-size=size_in_mb_or_gb Möglichkeit. Ersetzen Sie size_in_mb_or_gb mit der gewünschten Größe.

Zum Beispiel um alle Dateien auszuschließen, die größer sind als 500 MB, führen Sie diesen Befehl aus:

rsync -av --max-size=500m sourcedir/ destinationdir/

Andererseits, um Dateien auszuschließen, die kleiner als eine bestimmte Größe sind verwenden Sie den --min-size=size_in_mb_or_gb Option.

Sie möchten beispielsweise ein Verzeichnis mit Bildern übertragen, aber es gibt viele Thumbnail-Dateien. Wenn alle Ihre Bilder größer als 1 MB sind, können Sie alle Dateien ausschließen, die kleiner als diese Größe sind.

Führen Sie dazu diesen Befehl aus:

rsync -av --min-size=1m sourcedir/ destinationdir/

Nicht verwenden die --exclude rsync-Option bei der Definition der minimalen oder maximalen Dateigröße.

Mehrere Dateien oder Verzeichnisse ausschließen

Fügen Sie mehrere --exclude hinzu Optionen zum Ausschließen mehrerer Dateien oder Verzeichnisse. Sie können beliebige rsync --exclude kombinieren Ordner und rsync --exclude Datei(en) Befehle, um nur die Daten zu übertragen, die Sie benötigen. Jeder der zuvor besprochenen Befehle kann in einer Zeile verwendet werden.

Der folgende Befehl schließt alle Dateien mit der .txt aus Erweiterung sowie dir3 und dir4 Verzeichnisse:

rsync -av --exclude '*.txt' --exclude 'dir3' --exclude 'dir4' sourcedir/ destinationdir/

Sie können beliebig viele --exclude hinzufügen Einträge nach Bedarf. Um den Befehl übersichtlich zu halten, können Sie Dateien und Verzeichnisse in --exclude angeben Option mit geschweiften Klammern. Trennen Sie die Muster durch ein Komma.

Zum Beispiel können wir den obigen Befehl auf diese Weise verkürzen:

rsync -av --exclude={'*.txt','dir3','dir4'} sourcedir/ destinationdir/

Die Ausgabe zeigt, dass die aufgelisteten Dateien und Verzeichnisse von der Übertragung ausgeschlossen sind.

Dateien und Verzeichnisse von einer Liste ausschließen

Wenn Sie eine große Anzahl unterschiedlicher Dateien und Verzeichnisse ausschließen müssen, können Sie rsync --exclude-from verwenden Flagge. Erstellen Sie dazu eine Textdatei mit den Namen der Dateien und Verzeichnisse, die Sie ausschließen möchten. Übergeben Sie dann den Namen der Datei an --exlude-from Option.

Der Befehl sieht folgendermaßen aus:

rsync -av --exclude-from={'list.txt'} sourcedir/ destinationdir/

Das rsync-Tool überspringt alle Dateien und Verzeichnisse, die Sie in der Datei auflisten. Sie können jedes Muster hinzufügen, das wir in dieser Anleitung verwendet haben.

Die Beispieldatei, die wir im obigen Befehl verwendet haben, enthält die folgenden Muster:


Linux
  1. So übertragen Sie Dateien zwischen zwei Computern mit den Befehlen nc und pv

  2. So verwenden Sie Netcat zum Übertragen von Dateien unter Linux

  3. So übertragen Sie Dateien unter Linux mit SCP und Rsync

  4. 6 rsync-Beispiele zum Ausschließen mehrerer Dateien und Verzeichnisse mit Exclude-From

  5. So verwenden Sie FTP unter Linux zum Übertragen von Dateien

So verwenden Sie den cp-Befehl zum Kopieren von Dateien und Verzeichnissen

So verwenden Sie den SCP-Befehl zum Übertragen von Dateien

So synchronisieren Sie Dateien und Verzeichnisse mit Zaloha.sh

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So verwenden Sie den Befehl rsync, um Daten lokal und über SSH zu kopieren

So installieren und verwenden Sie Okteta für RAW-Datendateien unter Linux