15 Rsync-Beispiele

15 Rsync Beispiele



Das Übertragen von Dateien von einem Ort an einen anderen Ort ist eine sehr häufige Aufgabe für Linux-Benutzer. Für diese Aufgabe stehen unter Linux viele Optionen zur Verfügung. „rsync“ ist einer davon. Die vollständige Form von „rsync“ ist „Remote Sync“. Es ist ein sehr nützliches Synchronisierungstool, um Dateien und Ordner lokal oder remote von einem System auf ein anderes System zu kopieren. Es bietet viel mehr Vorteile als die anderen Synchronisierungstools. Dieses Tool ist standardmäßig unter Linux installiert. Der Benutzer muss es also nicht installieren. Die Vorteile und Einsatzmöglichkeiten des Befehls „rsync“ werden in diesem Tutorial anhand von 15 einfachen Beispielen aufgezeigt.

Vorteile des „Rsync“-Befehls

  1. Es ist schneller als die anderen Tools, da es nur die Dateien vom Quellspeicherort zum Zielspeicherort kopiert, die geändert wurden oder am Zielspeicherort nicht vorhanden sind.
  2. Es unterstützt die unvollständige Übertragung.
  3. Es benötigt weniger Bandbreite, da es die Daten während der Übertragung komprimiert.
  4. Dadurch verringert sich der Übertragungsaufwand, da weniger wichtige Daten ohne Verschlüsselung übertragen werden können.

Syntax

Die Syntax des Befehls „rsync“ ist wie folgt:

rsync [Option] Quellziel

Dabei können Quell- und Zielpfad lokal oder remote sein. Mit diesem Befehl können verschiedene Arten von Optionen für unterschiedliche Zwecke verwendet werden.







Nützliche Optionen des Befehls „Rsync“.

Einige häufig verwendete Optionen des Befehls „rsync“ werden im Folgenden erläutert:



Möglichkeit Zweck
-Mit Es dient dazu, die Daten während der Übertragung zu komprimieren.
-R Es wird verwendet, um die Daten rekursiv zu synchronisieren, ohne dass Dateiberechtigungen beibehalten werden.
-A Es wird verwendet, um die Daten rekursiv zu synchronisieren und dabei alle Dateiberechtigungen beizubehalten.
-B Es dient zur Sicherung der Daten während der Übertragung.
-In Es wird verwendet, um die Ausgabe im ausführlichen Format anzuzeigen.
-P Es wird verwendet, um den Fortschritt der Übertragung anzuzeigen.
-N Es wird verwendet, um vor der Übertragung der Dateien oder Ordner zu überprüfen, ob die Synchronisierung funktioniert oder nicht.

Liste von 15 „Rsync“-Beispielen

  1. Übertragen Sie eine einzelne Datei und einen einzelnen Ordner lokal
  2. Übertragen Sie mehrere Dateien und Ordner lokal
  3. Übertragen Sie eine einzelne Datei und einen einzelnen Ordner aus der Ferne
  4. Übertragen Sie mehrere Dateien und Ordner aus der Ferne
  5. Zeigen Sie den Fortschritt der Übertragung an
  6. Komprimieren Sie die Daten während der Übertragung
  7. Übertragung mit Bandbreitenbegrenzung
  8. Übertragen Sie die Dateien und Ordner rekursiv
  9. Übertragen Sie mit der Mindestgrößenbeschränkung
  10. Übertragen Sie mit der maximalen Größenbeschränkung
  11. Übertragen Sie die Dateien des bestimmten Typs
  12. Zeigen Sie die Unterschiede zwischen den Quell- und Zieldateien an
  13. Schließen Sie die Dateien während der Übertragung ein oder aus
  14. Synchronisieren Sie die Daten im Trockenmodus
  15. Löschen Sie die Quelldateien und -ordner nach der Übertragung

Übertragen Sie eine einzelne Datei und einen einzelnen Ordner lokal

Führen Sie den Befehl „ls“ aus, um die Liste der Dateien und Ordner des aktuellen Speicherorts anzuzeigen. Führen Sie als Nächstes den Befehl „rsync“ aus, um die Datei „employees.txt“ lokal in die Datei „employees_copy.txt“ zu übertragen. Führen Sie den Befehl „ls“ erneut aus, um zu überprüfen, ob die Datei ordnungsgemäß übertragen wurde oder nicht.



$ ls
$ rsync Mitarbeiter.txt Mitarbeiter_Kopie.txt
$ ls

Die folgende Ausgabe zeigt, dass die Datei „employee.txt“ erfolgreich übertragen wurde:





Angenommen, der Inhalt des Temp-Ordners muss in den Tempdir-Ordner übertragen werden, wo in beiden Ordnern die Datei „courses.txt“ vorhanden ist. Führen Sie den Befehl „ls temp“ aus, um den Inhalt des temporären Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „cat temp/courses.txt“ aus, um den Inhalt dieser Datei zu überprüfen. Führen Sie als Nächstes den Befehl „ls tempdir“ aus, um den Inhalt des Tempdir-Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „cat tempdir/courses.txt“ aus, um den Inhalt dieser Datei zu überprüfen.



$ ls temp
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

Die Ausgabe zeigt, dass der Inhalt der Datei „courses.txt“ der Ordner temp und tempdir leicht unterschiedlich ist und die Datei „courses.txt“ des Ordners temp mehr Daten enthält als die Datei „courses.txt“ des Ordners tempdir .

Führen Sie den folgenden Befehl aus, um den Inhalt des Temp-Ordners in den Tempdir-Ordner zu übertragen und überprüfen Sie den Inhalt der Datei „courses.txt“ des Tempdir-Ordners, um sicherzustellen, dass die Datei ordnungsgemäß aktualisiert wurde oder nicht:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/courses.txt

Die folgende Ausgabe zeigt, dass der Inhalt des Temp-Ordners ordnungsgemäß in den Tempdir-Ordner übertragen und der Inhalt der Datei „courses.txt“ des Tempdir-Ordners ordnungsgemäß aktualisiert wird:

Übertragen Sie mehrere Dateien und Ordner lokal

Mit dem Befehl „rsync“ können mehrere Dateien und Ordner lokal übertragen werden. Führen Sie den folgenden Befehl aus, um die Dateien „ping1.bash“ und „ping2.bash“ in den Ordner „tempdir“ zu übertragen und überprüfen Sie nach der Übertragung den Inhalt des Ordners „tempdir“. Die Option -v wird mit dem Befehl „rsync“ verwendet, um die Ausgabe im ausführlichen Format anzuzeigen:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Die folgende Ausgabe zeigt, dass mehrere Dateien ordnungsgemäß in den Ordner tempdir übertragen wurden:

Führen Sie die folgenden Befehle aus, um den Inhalt der Ordner temp, tempdir und test zu überprüfen und den Inhalt der Ordner test und tempdir in den temporären Ordner zu übertragen:

$ ls temp
$ lstempdir
$ ls-Test
$ rsync -av test/ tempdir/ temp/
$ ls temp

Die Ausgabe zeigt, dass der Inhalt der Ordner test und tempdir erfolgreich in den temporären Ordner übertragen wurde. Die Dateien „customers.csv“, „ping1.bash“ und „ping2.bash“ werden als neue Dateien zum temporären Ordner hinzugefügt:

Übertragen Sie eine einzelne Datei und einen einzelnen Ordner aus der Ferne

Sie müssen den SSH-Server am Remote-Standort installieren und konfigurieren, um die Dateien und Ordner remote zu übertragen. Sie können dies überprüfen Lernprogramm um den SSH-Server zu konfigurieren.

Führen Sie den folgenden Befehl aus, um die Größe der Datei „courses.txt“ am aktuellen Standort zu überprüfen:

ls -la Kurse.txt

Die Ausgabe zeigt, dass die Größe der Datei „courses.txt“ 65 Byte beträgt:

Führen Sie den folgenden Befehl aus, um die „courses.txt“ an die zu übertragen /home/ubuntu/courses/ Ordner des Remote-Standorts, ubuntu@192.168.0.101. Sie müssen das Root-Passwort des Remote-Computers angeben, bevor Sie die Datei übertragen:

rsync -v course.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Die folgende Ausgabe zeigt, dass die Datei „courses.txt“ ordnungsgemäß auf den Remote-Computer übertragen wurde und die Dateigröße 65 Byte beträgt:

Führen Sie den folgenden Befehl aus, um den temporären Ordner in den zu übertragen /home/ubuntu/courses/ Ordner des Remote-Standorts, ubuntu@192.168.0.101. Sie müssen das Root-Passwort des Remote-Computers angeben, bevor Sie die Datei wie beim vorherigen Befehl übertragen.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

Die folgende Ausgabe zeigt, dass der Inhalt des temporären Ordners ordnungsgemäß auf den Remote-Computer übertragen wird:

Übertragen Sie mehrere Dateien und Ordner aus der Ferne

Der folgende „rsync“-Befehl überträgt die Dateien „customers.csv“ und „department.json“ in den /home/Ubuntu/files/ Ordner des Remote-Standorts, ubuntu@192.168.0.101.

rsync -av kunden.csv abteilung.json ubuntu@192.168.0.101:/home/ubuntu/files/

Die folgende Ausgabe zeigt, dass mehrere Dateien erfolgreich an den Remote-Standort übertragen wurden:

Der folgende „rsync“-Befehl überträgt den Inhalt der temporären und test-Ordner sowie der Datei „department.json“ in die /home/Ubuntu/files/ Ordner des Remote-Standorts, ubuntu@192.168.0.101.

rsync -av temp/ test/ Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Die folgende Ausgabe zeigt, dass der Inhalt der mehreren Ordner erfolgreich an den Remote-Standort übertragen wurde:

Zeigen Sie den Fortschritt der Übertragung an

Führen Sie den Befehl „rsync“ mit der Option –progress aus, um den Inhalt des Ordners „tempdir“ mit den Fortschrittsinformationen in den Ordner „temp_copy“ zu übertragen.

rsync -a tempdir/ temp_copy --progress

Die folgende Ausgabe zeigt, dass das Verzeichnis temp_copy lokal erstellt wurde und der Inhalt des Ordners tempdir erfolgreich in den Ordner temp_copy übertragen wurde:

Komprimieren Sie die Daten während der Übertragung

Führen Sie den folgenden „rsync“-Befehl mit der Option –z aus, um das Tempdir-Verzeichnis zu komprimieren und lokal in das Testverzeichnis zu übertragen:

rsync -za tempdir/test/

Die folgende Ausgabe zeigt, dass das komprimierte Verzeichnis erfolgreich lokal übertragen wurde:

Übertragung mit Bandbreitenbegrenzung

Führen Sie den folgenden „rsync“-Befehl mit der Option –bwlimit mit dem Wert 100 aus, um die Datei /etc/passwd lokal in den temporären Ordner zu übertragen:

rsync -v --bwlimit=100 etc/passwd temp/

Die folgende Ausgabe zeigt, dass die passwd-Datei erfolgreich übertragen wurde:

Übertragen Sie die Datei und den Ordner rekursiv

Führen Sie den folgenden „rsync“-Befehl mit der Option –rv aus, um den Testordner lokal in den test_bak-Ordner zu übertragen:

rsync -rv test/ test_bak/

Die folgende Ausgabe zeigt, dass der Testordner erfolgreich in den Ordner test_bak übertragen wurde:

Übertragen Sie mit der Mindestgrößenbeschränkung

Die Übertragung der Dateien und Ordner mit dem Befehl „rsync“ kann mithilfe der Option –min-size eingeschränkt werden, um die Mindestgröße für die Übertragung der Dateien und Ordner festzulegen. Führen Sie den folgenden Befehl „ls -la tempdir“ aus, um die Größe jeder Datei und jedes Ordners dieses Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „rsync“ aus, um den Inhalt des Ordners „tempdir“ in den Ordner „tempdir_bak“ mit der Mindestgrößenbeschränkung zu übertragen.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Die folgende Ausgabe zeigt, dass im Tempdir-Ordner zwei Dateien vorhanden sind, die der Mindestgröße entsprechen. Dies sind „ping1.bash“ (248 Byte) und „test.txt“ (34504 Byte). Diese Dateien werden in den Ordner tempdir_bak übertragen und die anderen Dateien des Ordners tempdir werden weggelassen:

Übertragen Sie mit der maximalen Größenbeschränkung

Die Übertragung der Dateien und Ordner mit dem Befehl „rsync“ kann mithilfe der Option –max-size eingeschränkt werden, um die maximale Größenbeschränkung der zu übertragenden Dateien und Ordner festzulegen. Führen Sie den folgenden Befehl „ls -la temp“ aus, um die Größe jeder Datei und jedes Ordners dieses Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „rsync“ aus, um den Inhalt des temporären Ordners in den Ordner temp_bak mit der maximalen Größenbeschränkung zu übertragen.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

Die folgende Ausgabe zeigt, dass im temporären Ordner vier Dateien vorhanden sind, die der maximalen Größenbeschränkung entsprechen. Dies sind „courses.txt“ (65 Bytes), „employees.csv“ (361 Bytes), „ping1.bash“ (248 Bytes) und „ping2.bash“ (244 Bytes). Diese Dateien werden in den Ordner temp_bak übertragen und die anderen Dateien im temporären Ordner werden weggelassen:

Übertragen Sie die Dateien des bestimmten Typs

Der zu übertragende Dateityp kann durch Angabe der Dateierweiterung im Befehl „rsync“ festgelegt werden. Führen Sie den folgenden „rsync“-Befehl aus, um alle Textdateien des temporären Ordners in den mydir-Ordner zu übertragen. Hier wird die Erweiterung der Textdatei mit „*.txt“ angegeben:

rsync -v temp/*.txt mydir/

Die folgende Ausgabe zeigt, dass zwei Textdateien, „courses.txt“ und „test.txt“, in den Ordner „mydir“ übertragen werden und die anderen Dateien des temporären Ordners weggelassen werden:

Zeigen Sie die Unterschiede zwischen den Quell- und Zieldateien an

Wenn die Dateien oder Ordner lokal oder remote von einem Ort an einen anderen Ort übertragen werden, können beide Orte dieselben Dateien oder Ordner enthalten. Die Unterschiede zwischen Quelle und Ziel während der Übertragung können mit der Option -i des Befehls „rsync“ untersucht werden. Führen Sie die folgenden „cat“-Befehle aus, um den Inhalt der Quell- und Zieldatei vor der Übertragung zu überprüfen. Dabei wird die Datei „courses.txt“ in den temporären Ordner übertragen.

Katzenkurse.txt
cat temp/courses.txt
rsync -avi course.txt temp/

Die folgende Ausgabe zeigt, dass sich die Datei „courses.txt“ der Quelle und des Ziels geringfügig unterscheidet. Die Ausgabe des Befehls „rsync“ zeigt den Unterschied zwischen den Dateien:

Synchronisieren Sie die Daten im Trockenmodus

Wenn Sie vor der eigentlichen Übertragung wissen möchten, welche Dateien und Ordner durch den Befehl „rsync“ übertragen werden, ist es besser, den Befehl „rsync“ mit der Option –dry-run oder der Option –n auszuführen. Wenn der Befehl „rsync“ mit dieser Option ausgeführt wird, prüft er, welche Dateien oder Ordner vom Quellordner in den Zielordner kopiert werden, der Zielordner bleibt jedoch unverändert. Führen Sie die Datei „ls –la Department.json“ aus, um die Größe der Datei zu überprüfen. Führen Sie als Nächstes den Befehl „rsync“ im Modus „–dry-run“ aus, um die Übertragung der Datei „department.json“ in den temporären Ordner zu überprüfen.

ls -la abteilung.json
rsync -v --dry-run Department.json temp/

Die folgende Ausgabe zeigt, dass die Größe der Datei „department.json“ 1172 Byte beträgt. Die Dateigröße beträgt 1172 Byte, nachdem der Befehl „rsync“ mit der Option –dry-run ausgeführt wurde:

Schließen Sie die Dateien während der Übertragung ein oder aus

Sie können den Dateityp zum Zeitpunkt der Übertragung vom Quellspeicherort zum Zielspeicherort mithilfe der Optionen –include und –exclude filtern. Mit der Option „optionsinclude“ wird die Erweiterung der Dateien definiert, die von der Quelle zum Ziel übertragen werden. Die Option –exclude wird verwendet, um die Erweiterung der Dateien zu definieren, die nicht von der Quelle zum Ziel übertragen werden.

Führen Sie den folgenden Ordner „ls temp“ aus, um den Inhalt des temporären Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „rsync“ mit den Optionen –include und –exclude aus. Gemäß dem Befehl werden alle CSV-Dateien des temporären Ordners in den Dateiordner übertragen und alle Textdateien des temporären Ordners werden zum Zeitpunkt der Übertragung weggelassen. Führen Sie als Nächstes den Befehl „ls files“ aus, um zu überprüfen, welche Dateien vom temporären Ordner in den Dateiordner übertragen werden.

ls temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls-Dateien

Die folgende Ausgabe zeigt, dass der temporäre Ordner zwei CSV-Dateien, zwei Textdateien und zwei BASH-Dateien enthält. Der Dateiordner ist vor der Übertragung leer und es werden zwei CSV-Dateien und zwei BASH-Dateien übertragen:

Löschen Sie die Quelldateien und -ordner nach der Übertragung

Bei den vorherigen „rsync“-Befehlen verbleiben die Quelldateien und -ordner nach der Übertragung an den Zielort am Quellort. Manchmal ist es jedoch erforderlich, die Dateien und Ordner dauerhaft an den Zielspeicherort zu übertragen. Diese Aufgabe kann mit der Option –remove-source-files mit dem Befehl „rsync“ ausgeführt werden. Führen Sie den Befehl „ls“ aus, um alle Dateien und Ordner des aktuellen Speicherorts zu überprüfen. Führen Sie den Befehl „ls temp“ aus, um die Dateien und Ordner des temporären Ordners zu überprüfen. Führen Sie als Nächstes den Befehl „rsync“ mit der Option –remove-source-files aus, um die Dateien und Ordner des Quellspeicherorts nach Abschluss der Übertragung zu löschen. Führen Sie den Befehl „ls“ erneut aus, um zu überprüfen, ob die Quelldatei vom Quellspeicherort entfernt wurde oder nicht.

ls
ls temp
rsync  Employees.csv temp/ --remove-source-files
ls

Die folgende Ausgabe zeigt, dass die Datei „employees.csv“ des aktuellen Speicherorts in den temporären Ordner übertragen und die Datei „employees.csv“ nach der Übertragung vom Quellspeicherort entfernt wird:

Abschluss

„rsync“ ist ein sehr nützliches Tool von Linux, das die Übertragung von Dateien und Ordnern von einem Ort zu einem anderen mithilfe verschiedener Optionen erleichtert. Die Methoden zur Verwendung des Befehls „rsync“ zum Übertragen von Dateien und Ordnern von einem Ort an einen anderen durch Komprimieren, Festlegen der Datei- und Ordnergröße, Festlegen des Dateityps, Festlegen der Bandbreitenbegrenzung usw. werden in 15 einfachen Beispielen gezeigt dieses Tutorial. Dieses Tutorial hilft Linux-Benutzern, die grundlegende Verwendung des Befehls „rsync“ unter Linux richtig zu kennen.