In diesem Artikel erklären wir anhand einiger praktischer Beispiele, wie Sie rsync zum Kopieren von Dateien verwenden. Wir werden auch die Verwendung von rsync beim Kopieren einer einzelnen Datei, mehrerer Dateien und eines Verzeichnisses auf lokale und entfernte Systeme erklären. Wir werden behandeln, wie Sie Rsync verwenden, um:
- Datei/Verzeichnis innerhalb des lokalen Systems kopieren
- Datei/Verzeichnis vom lokalen auf das entfernte System kopieren
- Datei/Verzeichnis vom entfernten System nach lokal kopieren to
Wir haben die in diesem Artikel erwähnten Befehle und Verfahren auf einem Ubuntu 20 . erklärt.04 LTS. Sie benötigen das Befehlszeilenterminal zum Kopieren von Dateien mit rsync. Um die Befehlszeilen-Terminalanwendung zu öffnen, verwenden Sie die Tastenkombination Strg+Alt+T.
Rsync installieren
Rsync ist in Ubuntu 20 . vorinstalliert.04 LTS. Sollte es jedoch versehentlich aus dem System entfernt werden, können Sie es wie folgt installieren:
$ sudo apt install rsyncHier sind einige der am häufigsten verwendeten Optionen, die mit rsync verwendet werden können:
-a: Archivmodus
-v: zeigt Details zum Kopiervorgang an
-p: zeigt den Fortschrittsbalken an
-r: kopiert Daten rekursiv
-z: komprimiert Daten
-q: Ausgabe unterdrücken
Dateien und Verzeichnisse lokal kopieren
Die allgemeine Syntax von rsync ist:
$ rsync [Option] [Quelle] [Ziel]Eine einzelne Datei lokal kopieren
Wenn Sie eine Datei innerhalb Ihres Systems von einem Speicherort an einen anderen kopieren möchten, können Sie dies tun, indem Sie eingeben rsync gefolgt vom Quelldateinamen und dem Zielverzeichnis.
Um beispielsweise eine einzelne Datei „file1“ zu kopieren.txt“ vom aktuellen Speicherort, der das Home-Verzeichnis ist, in das Verzeichnis ~/Documents, lautet der Befehl:
$rsync /home/tin/file1.txt /home/tin/Dokumente
Hinweis: Statt „/home/tin/file1file.txt“, können wir auch „file1“ eingeben, da wir gerade im Home-Verzeichnis arbeiten. Außerdem können wir ~/Documents verwenden, anstatt den vollständigen Pfad als "/home/tin/Documents" zu erwähnen.
Mehrere Dateien lokal kopieren
Wenn Sie mehrere Dateien gleichzeitig von einem Speicherort an einen anderen innerhalb Ihres Systems kopieren möchten, können Sie dies tun, indem Sie . eingeben rsync gefolgt vom Namen der Quelldatei und dem Zielverzeichnis.
Um zum Beispiel die Dateien „file2“ zu kopieren.txt“ und „Datei3“.txt“ vom Home-Verzeichnis in das Verzeichnis ~/Documents, lautet der Befehl:
$rsync /home/tin/file2.txt /home/tin/file3.txt /home/tin/Dokumente
Um alle Dateien mit derselben Erweiterung zu kopieren, können Sie das Sternchen (*)-Symbol verwenden, anstatt die Dateinamen einzeln anzugeben specify. Um beispielsweise alle Dateien aus dem Home-Verzeichnis zu kopieren, die mit „.zip“-Erweiterung in das Verzeichnis ~/Documents, verwenden wir:
$rsync /home/tin/*.zip ~/DokumenteVerzeichnisse lokal kopieren
Wenn Sie ein Verzeichnis mit seinem Unterverzeichnis und allen Inhalten von einem Ort an einen anderen innerhalb Ihres Systems kopieren möchten, können Sie dies tun, indem Sie rsync gefolgt vom Quell- und Zielverzeichnis.
Um beispielsweise das Verzeichnis „sample“ in das Verzeichnis „test/“ innerhalb des Home-Verzeichnisses zu kopieren, lautet der Befehl:
$ rsync -av /home/tin/sample /home/tin/testHinweis: Die Angabe von „/“ nach dem Quellverzeichnis kopiert nur den Inhalt des Verzeichnisses. Wenn wir nach dem Quellverzeichnis kein „/“ angeben, wird das Quellverzeichnis auch in das Zielverzeichnis kopiert.
Wie in der folgenden Ausgabe sehen Sie, dass auch unser Quellverzeichnis „sample“ in das Zielverzeichnis kopiert wird (da wir als Quellverzeichnis „sample“ statt „sample/“ verwendet haben).
Rsync unterstützt die inkrementelle Übertragung, wie Sie in der obigen Ausgabe sehen können, dass es nur die Dateien überträgt, die neu oder aktualisiert sind.
Kopieren Sie Dateien basierend auf der maximalen Größe
Beim Kopieren können wir auch die maximale Größe der Dateien angeben, die mit der Option „-max-size“ kopiert werden können. Um beispielsweise Dateien mit einer Größe von nicht mehr als 2000 KB aus dem Verzeichnis ~/Downloads in das Verzeichnis ~/Documents zu kopieren, lautet der Befehl:
$ rsync -a --max-size=2000k /home/tin/Downloads/* /home/tin/DocumentsDieser Befehl kopiert alle Dateien von ~/Downloads in das Verzeichnis ~/Documents außer denen, die größer als 2000k . sind.
Kopieren Sie Dateien basierend auf der Mindestgröße
Ebenso können wir mit der Option „-min-size“ die Mindestgröße der Dateien angeben, die kopiert werden können. Um beispielsweise die Dateien, die nicht kleiner als 5 MB sind, von ~/Downloads in das Verzeichnis ~/Documents zu kopieren, lautet der Befehl:
$ rsync -a --min-size=5M /home/tin/Downloads/ /home/tin/DocumentsDieser Befehl kopiert alle Dateien von ~/Downloads in das Verzeichnis ~/Documents außer denen, die kleiner als 5 MB sind.
Dateien ausschließen
Beim Kopieren von Dateien von einem Verzeichnis in ein anderes können Sie einige Dateien mit der Option „-exclude“ gefolgt vom Dateinamen oder der Erweiterung des Dateityps ausschließen.
Um beispielsweise alle auszuschließen .zip-Dateien beim Kopieren von Dateien aus dem Verzeichnis ~/Downloads in das Verzeichnis ~/Documents lautet der Befehl:
$ rsync -a --exclude="*.zip" /home/tin/Downloads/ /home/tin/DokumenteKopieren Sie Dateien und Verzeichnisse aus der Ferne
Mit Rsync können Sie eine einzelne Datei, mehrere Dateien und Verzeichnisse auf ein Remote-System kopieren. Um Dateien und Verzeichnisse aus der Ferne zu kopieren, benötigen Sie:
- Rsync sowohl auf dem lokalen als auch auf dem Remote-System installiert
- SSH-Zugriff auf das Remote-System
- Passwort für Remote-Benutzer
Stellen Sie vor dem Kopieren von Dateien mit rsync sicher, dass Sie über SSH auf das Remote-System zugreifen können:
$ ssh remote_user@remote_ip
Die allgemeine Syntax zum Kopieren von Dateien und Verzeichnissen auf ein Remote-System mit rsync:
Um beispielsweise eine einzelne Datei „Datei“ zu kopieren.txt“ von ~/Downloads in das Verzeichnis ~/Documents des Remote-Systems, lautet der Befehl:
$ rsync -v ~/Downloads/file1.txt [email protected]:~/Dokumente
Um analog das Verzeichnis „~/Downloads/files“ in einem lokalen System mit seinem Unterverzeichnis und allen Inhalten in das Verzeichnis „~/Downloads/samples“ auf dem Remote-System zu kopieren:
$ rsync -rv ~/Downloads/Dateien [email protected]:~/Downloads/Beispiele
Sie können die Dateien und Verzeichnisse auch vom Remote-Computer auf Ihren lokalen Computer kopieren. Um zum Beispiel eine „Datei2“ zu kopieren.txt“ vom Remote-System auf den Desktop des lokalen Systems:
$ rsync -v [email protected]:~/Downloads/Datei2.txt ~/Desktop/
Ebenso, um ein Verzeichnis vom Remote-System auf das lokale System zu kopieren
$ rsync -rv [email protected]:~/Downloads/Beispiel ~/Desktop/TestSie können auch alle Optionen wie -max-size, -min-size, -exclude und andere verwenden, während Sie Dateien zum/vom Remote-System kopieren.
Rsync ist ein großartiges Tool zum Kopieren von Dateien von der Quelle zum Ziel, entweder lokal oder aus der Ferne. Es enthält eine Vielzahl von Optionen, die Ihnen Flexibilität und Kontrolle beim Übertragen von Dateien zum/vom Remote-System bieten.