Home » Netzwerk & Sicherheit » Mit Rsync Daten zwischen Rechnern synchronisieren

Mit Rsync Daten zwischen Rechnern synchronisieren

Heute geht es darum mit Rsync Daten zwischen Rechnern zu kopieren und zu synchronisieren. Rsync, kurz für "remote synchronization", ist ein leistungsfähiges Open-Source-Tool zur Datei- und Verzeichnissynchronisation. Es ist in Unix-Systemen weit verbreitet, einschließlich Linux und MacOS, und kann sowohl zur Sicherung von Daten als auch zur Replikation von Dateien zwischen Computern verwendet werden.

 

Funktion von Rsync

Rsync nutzt ein einzigartiges Delta-Transfer-Algorithmus, um die Menge der übertragenen Daten zu minimieren. Das Tool vergleicht die Quell- und Zieldateien und überträgt nur die Abschnitte, die sich geändert haben. Dieser inkrementelle Ansatz kann erhebliche Bandbreiten- und Zeitersparnisse gegenüber traditionelleren Methoden bieten, die komplette Dateien kopieren.

Rsync kann sowohl lokal (auf demselben Gerät oder im selben Netzwerk) als auch remote (über das Internet) verwendet werden. Es unterstützt auch den Transfer über verschlüsselte Kanäle mit SSH.

Vorausetzungen um mit Rsync Daten zwischen Rechnern zu synchronisieren

Um Rsync zu verwenden, muss es auf jedem beteiligten Computer installiert sein. Die meisten Unix-ähnlichen Betriebssysteme haben es bereits vorinstalliert. Bei Windows muss ein Software wie Cygwin verwendet werden, um Unix-ähnliche Befehle auszuführen.

Rsync selbst verwendet standardmäßig den TCP-Port 873 für die Kommunikation. Wenn Ihr Rsync auf einem Server bereitstellt, müsst Ihr sicherstellen, dass dieser Port in der Firewall offen ist, damit Rsync ordnungsgemäß funktioniert.

Es ist wichtig zu beachten, dass während Rsync selbst einige grundlegende Sicherheitsmaßnahmen bietet (wie die Verwendung von "chroot" zur Begrenzung des Zugriffs auf das Zielsystem), die Daten während der Übertragung nicht verschlüsselt werden. Dies bedeutet, dass Rsync allein für die Übertragung sensibler Daten über unsichere Netzwerke (wie das Internet) nicht ideal ist.

Zum Glück kann Rsync nahtlos mit SSH (Secure Shell) integriert werden, um eine sichere, verschlüsselte Verbindung zu erstellen. SSH verwendet standardmäßig den TCP-Port 22. Wenn Ihr Rsync über SSH verwendet, werden alle Daten, die übertragen werden, verschlüsselt, was bedeutet, dass sie während der Übertragung nicht abgefangen oder gelesen werden können.

Übertragt Ihr Daten verschlüsselt mit dem ssh Befehl, muss nur der Port 22 offen sein.

Flags und deren Funktion

Rsync hat eine Vielzahl von Flags, die das Verhalten der Dateiübertragung steuern. Hier sind einige der gebräuchlichsten:

  • -v: Verbose Mode. Gibt ausführliche Informationen über den Transfer.
  • -a: Archive Mode. Behält Dateiberechtigungen, -eigenschaften und -zeitstempel bei.
  • -z: Kompression. Komprimiert die Daten während der Übertragung.
  • -h: Human-readable. Zeigt die Dateigröße in einer für Menschen lesbaren Format an.
  • -r: Rekursiv. Kopiert auch die Unterverzeichnisse der ausgewählten Verzeichnisse.
  • --delete: Löscht Dateien im Zielverzeichnis, die nicht im Quellverzeichnis vorhanden sind.
  • -P: Kombination aus --partial (behält unterbrochene Dateiübertragungen bei) und --progress (zeigt den Fortschritt während der Übertragung).


Anwendung und Beispiele

Interne Netzwerkübertragung

Angenommen, wir haben zwei Computer im selben Netzwerk: "ComputerA" und "ComputerB", und wir möchten ein Verzeichnis namens "MeinVerzeichnis" von ComputerA nach ComputerB kopieren. Der Befehl auf ComputerA könnte so aussehen:

rsync -azv /pfad/zum/MeinVerzeichnis/ benutzer@192.168.0.50:/ziel/pfad/

In diesem Befehl steht -azv für Archivmodus, Kompression und ausführliche Ausgabe. Der / am Ende von /pfad/zum/MeinVerzeichnis/ ist wichtig, da er angibt, dass der Inhalt des Verzeichnisses und nicht das Verzeichnis selbst kopiert werden soll.

Dateiübertragung zu einem Server mit einer öffentlichen IP

Um eine Datei an einen Server mit einer öffentlichen IP zu senden, benötigen wir die IP-Adresse des Servers sowie einen Benutzernamen und ein Passwort für den Server. Hier ist ein Beispiel:

rsync -azv /pfad/zum/MeineDatei.txt benutzer@123.45.67.89:/ziel/pfad/

In diesem Beispiel ist 123.45.67.89 die IP-Adresse des Servers.

Verschlüsselte Datenübertragung

Um Rsync über SSH zu verwenden, fügt einfach die -e ssh-Option zu Eurem Rsync-Befehl hinzu. Hier ist ein Beispiel:

rsync -azve ssh /pfad/zum/verzeichnis/ benutzer@123.45.67.89:/ziel/pfad/

In diesem Beispiel würde Rsync eine SSH-Verbindung zum Server unter der IP-Adresse 123.45.67.89 herstellen und dann die Daten über diese sichere Verbindung übertragen.

Daten ziehen

Rsync kann auch verwendet werden, um Dateien von einem Remote-Server zu "ziehen", anstatt sie zu "schieben". Dies ist besonders nützlich, wenn wir Dateien von einem Server herunterladen möchten, auf den wir Zugriff haben.

Angenommen, Ihr möchtet eine Datei oder ein Verzeichnis von einem Remote-Server auf Ihren lokalen Computer kopieren. In diesem Fall wäre der Befehl umgekehrt.

Wenn Ihr eine Datei von einem Server mit der öffentlichen IP 123.45.67.89 herunterladen möchtet, würde der Befehl so aussehen:

rsync -azv benutzer@123.45.67.89:/pfad/zum/MeineDatei.txt /lokaler/pfad/

In diesem Fall ist /pfad/zum/MeineDatei.txt der Pfad zur Datei auf dem Remote-Server, und /lokaler/pfad/ ist der Pfad, in dem die Datei auf Ihrem lokalen Computer gespeichert werden soll.

Wenn Ihr ein gesamtes Verzeichnis von einem Server herunterladen möchtet, könnt den Befehl leicht modifizieren, indem Ihr den Pfad zum Verzeichnis angebt und sicherstellt, dass Ihr den / am Ende des Pfads beibehaltet:

rsync -azv benutzer@123.45.67.89:/pfad/zum/verzeichnis/ /lokaler/pfad/

In diesem Fall wird der Inhalt des Verzeichnisses auf dem Remote-Server in den lokalen Pfad kopiert.

Wie zuvor steht -azv für Archivmodus, Kompression und ausführliche Ausgabe. Die Option -a ist besonders wichtig, wenn Sie Verzeichnisse kopieren, da sie sicherstellt, dass Metadaten wie Berechtigungen und Zeitstempel beibehalten werden.

Rsync Optionen

Die Optionen wie --progress oder --delete können einfach hinter die Flags gesetzt werden. Möchtet Ihr immer eine Fortschrittsanzeige angezeigt bekommen, setzt --progress hinter die Flaggen. In diesem Fall wie folgt:

rsync -azve ssh --progress benutzer@123.45.67.89:/pfad/zum/verzeichnis/ /lokaler/pfad/

Rsync ist ein sehr gutes Tool, das sowohl die Effizienz als auch die Sicherheit von Dateiübertragungen erheblich verbessern kann.

Durch seine vielfältigen Optionen und Einstellungen ist es für eine Vielzahl von Szenarien geeignet, von einfachen Dateikopien bis hin zu komplexen Backup- und Synchronisationsaufgaben.

Ich hoffe Euch Rsync etwas näher gebracht zu haben. Habt Ihr Fragen zur Anwendung, schreibt sie in die Kommentare!

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert