Das Kopieren von Dateien von einem Speicherort zu einem anderen ist eine ziemlich einfache Aufgabe und kann leicht mit dem Befehl cp erreicht werden. Allerdings muss man manchmal etwas mehr tun. Hier kommt der rsync-Befehl zum Einsatz, insbesondere wenn Sie größere Dateien übertragen. Rsync (Remote Sync) ist ein Linux-basiertes Befehlszeilentool, das zum Synchronisieren und Kopieren von Dateien zwischen lokalen und Remote-Servern verwendet werden kann. Es ermöglicht die Synchronisierung von Dateien zwischen zwei Verzeichnissen auf demselben Computer, zwischen den Verzeichnissen auf zwei verschiedenen Computern im selben Netzwerk, zwischen zwei Verzeichnissen auf dem Remote-System.
Der große Vorteil von rsync besteht darin, dass es nicht den gesamten Inhalt blind kopiert, sondern nur die Unterschiede zwischen Quelle und Ziel analysiert und überträgt, wodurch möglicherweise Systemressourcen und Bandbreite eingespart werden. Einige andere Vorteile von rsync sind wie folgt:
- Komprimiert die Dateien vor der Übertragung
- Kann während der Datenübertragung den Fortschrittsbalken anzeigen
- Der Kopiervorgang kann angehalten und später fortgesetzt werden
- Ermöglicht die Übertragung über eine SSH-Verbindung
In diesem Artikel erklären wir, wie Sie rsync zum Kopieren von Daten unter Linux verwenden. Wir werden Debian 10 verwenden, um das in diesem Artikel erwähnte Verfahren zu beschreiben.
Installation von Rsync
Rsync ist in den meisten Linux-Betriebssystemen standardmäßig installiert. Wenn es jedoch nicht installiert ist, können Sie es installieren, indem Sie die folgenden Schritte ausführen:
Starten Sie die Terminal-Anwendung in Ihrem System, indem Sie zu den Aktivitäten gehen Registerkarte in der oberen linken Ecke Ihres Debian-Desktops. Geben Sie dann in der Suchleiste Terminal ein . Wenn das Terminal-Symbol erscheint, klicken Sie darauf, um es zu starten.
Führen Sie nun den folgenden Befehl im Terminal aus, um das rsync-Dienstprogramm zu installieren:
$ apt install rsync
Rsync verwenden
Jeder rsync-Befehl beginnt mit rsync gefolgt von einer Option, in der Sie verschiedene Parameter angeben können. Rsync bietet eine Reihe von Optionen, mit denen Sie die Übertragungsspezifikationen steuern können. Dann gibt es eine Quelle und ein Ziel, die davon abhängen, ob es sich um eine entfernte oder eine lokale Maschine handelt.
Die grundlegende Syntax von rsync ist:
$ rsync [option] [source] [destination]
Einige der allgemeinen Optionen, die mit rsync-Befehlen verwendet werden:
- -v :ausführlich
- -a :Archivmodus, ermöglicht das rekursive Kopieren von Dateien und bewahrt symbolische Links, Dateiberechtigungen, Benutzer- und Gruppeneigentumsrechte und Zeitstempel
- -z :komprimiert Daten
- -h :für Menschen lesbar, gibt Zahlen in einem für Menschen lesbaren Format aus
- –max-size= SIZE, Dateien mit der angegebenen Mindestgröße übertragen
- –min-size= SIZE, überträgt Dateien mit der angegebenen maximalen SIZE
Nun erklären wir einige Beispiele für die Verwendung von rsync mit diesen Optionen.
Dateien und Verzeichnisse auf den lokalen Server kopieren
Dateien lokal kopieren
Sie können einzelne oder mehrere Dateien aus einem Quellverzeichnis in das Zielverzeichnis auf demselben Computer kopieren. Das Beispiel wäre, alle .jpg zu kopieren Dateien aus ~/Downloads in das Verzeichnis ~/Documents Verzeichnis mit dem folgenden Befehl:
$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents
Nachdem Sie den obigen Befehl ausgeführt haben, werden alle .jpg Dateien im Quellverzeichnis /home/tin/Downloads wird in das Zielverzeichnis /home/tin/Documents kopiert .
Im obigen Beispiel haben wir Optionen wie -z verwendet für Komprimierung -v für ausführliche Ausgabe und -h für menschenlesbare Ausgabe.
Verzeichnisse lokal kopieren
Ähnlich wie bei Dateien können Sie auch den gesamten Ordner und die in einem Verzeichnis enthaltenen Dateien mit dem Befehl rsync kopieren. Ein Beispiel wäre, alle Dateien aus ~/Downloads zu kopieren in das Verzeichnis ~/Documents Verzeichnis mit dem folgenden Befehl:
$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents
Dateien auf einen Remote-Server kopieren
Sie können einzelne oder mehrere Dateien von einem Quellverzeichnis in ein Zielverzeichnis auf einem Remote-Computer kopieren. Um beispielsweise die Dateien von einem lokalen auf einen entfernten Computer zu kopieren, verwenden Sie die folgende Befehlssyntax:
$ rsync [options] [local path] [user]@[remote server]:[remote path]
Kopieren von Dateien basierend auf der maximalen Größe
Sie können auch die maximale Größe der Datei angeben, die mit rsync von der Quelle zum Ziel kopiert werden kann. Verwenden Sie dazu die folgende Befehlssyntax:
$ rsync --max-size=”” [source] [destination]
Ein Beispiel wäre das Kopieren von Dateien mit einer maximalen Größe von 4000 KB aus der Quelle ~/Downloads zum Ziel ~/Dokumente Verzeichnis. In diesem Fall werden Dateien mit einer Größe von mehr als 4000 KB nicht zum Ziel kopiert.
$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/
Kopieren von Dateien basierend auf der Mindestgröße
Ebenso können Sie mit rsync auch die Mindestgröße angeben, die von der Quelle zum Ziel kopiert werden kann. Verwenden Sie dazu die folgende Befehlssyntax:
$ rsync --min-size=”” [source] [destination]
Ein Beispiel hierfür wäre das Kopieren von Dateien mit einer maximalen Größe von 2 MB aus der Quelle ~/Downloads zum Ziel ~/Dokumente Verzeichnis. Dateien mit einer Größe von weniger als 2 MB werden nicht mit rsync kopiert.
$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/
Fortschritt anzeigen
Sie können auch den Fortschritt beim Kopieren von Dateien mit rsync anzeigen. Fügen Sie –Fortschritt hinzu Flag nach dem rsync-Befehl wie unten gezeigt:
$ rsync --progress [source] [destination]
Ein Beispiel wäre das Anzeigen des Fortschritts beim Kopieren einer Datei aus der Quelle ~/Downloads zum Ziel ~/Dokumente Verzeichnis:
$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents
Dateien ausschließen
Sie können auch bestimmte Dateien ausschließen, während Sie die Dateien mit rsync von der Quelle zum Ziel kopieren. Ein Beispiel wäre das Ausschließen aller PDF-Dateien beim Kopieren von Dateien aus der Quelle ~/Downloads zum Ziel ~/Dokumente Verzeichnis.
rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents
Durch Eingabe des folgenden Befehls werden alle Dateien außer .pdf von der Quelle zum Ziel kopiert Dateien.
Das ist alles, was dazu gehört! Wir haben die grundlegende Verwendung des Dienstprogramms rsync zum Kopieren von Dateien zwischen verschiedenen Verzeichnissen lokal und remote erklärt. Wir haben auch einige allgemeine und nützliche rync-Optionen erklärt. Es gibt so viele andere Optionen als diese, mit denen Sie jeden Aspekt des Übertragungsverhaltens steuern können. Informationen zur Verwendung dieser Optionen finden Sie in den Manpages von rsync.