Einführung
Der Remote-Sync- oder rsync-Befehl wird zum Übertragen und Synchronisieren von Dateien und Verzeichnissen zwischen Computern, Hosts, Remote-Shells oder einer Kombination der oben genannten verwendet. Es ist ein leistungsstarkes Dienstprogramm, das Sie kennen sollten, wenn Sie mit Linux arbeiten. Wir werden hier die Grundlagen des rsync-Befehls behandeln. Obwohl dieser Artikel Ubuntu 20.04 verwendet, können Sie dieselben Befehle auf anderen Linux-Distributionen verwenden.
Was macht rsync so besonders?
Die rsync-Befehle verwenden Komprimierung und Dekomprimierung beim Empfangen und Senden von Dateien, was bedeutet, dass sie sehr wenig Bandbreite verbrauchen. Rsync aktualisiert nur die Unterschiede zwischen Quelle und Ziel, da es das Remote-Update-Protokoll verwendet. Es unterstützt auch Eigentümer, Gruppen, Links, Berechtigungen und Geräte.
Wie installiere ich rsync?
Bei den meisten Linux-Distributionen ist rsync bereits installiert. Falls dies bei Ihrem nicht der Fall ist, verwenden Sie den folgenden Befehl auf Ihrem Ubuntu-System:
sudo apt-get install rsync
Rsync-Syntax
Dieser Abschnitt behandelt kurz die rsync-Syntax.
Lokal-zu-Lokal-Übertragung oder -Synchronisierung
rsync {option} {source} {destination}
Lokal-zu-Remote-Übertragung oder -Synchronisierung
rsync {option} {source} {[email protected]:destination}
Remote-zu-Lokal-Übertragung oder -Synchronisierung
rsync {option} {[email protected]:destination} {destination}
Quelle ist das Quellverzeichnis
Ziel ist das Zielverzeichnis
Option sind die rsync-Befehlsoptionen
Benutzer ist der entfernte Benutzername
Host ist die IP oder der entfernte Hostname
Wie man rsync verwendet
Dateien lokal kopieren
Um Dateien lokal zu kopieren, verwenden Sie:
rsync –a {filename} {destination}
Im obigen Beispiel kopieren wir „source.zip ” aus unserem aktuellen Verzeichnis nach Documents.
Sie können überprüfen, ob die Datei kopiert wurde, indem Sie alle Dateien und Verzeichnisse in Dokumente auflisten, indem Sie Folgendes verwenden:
ls
Wie Sie sehen können, ist „source.zip ” befindet sich im Dokumentenverzeichnis.
Wenn Sie der Datei im Ziel keinen Namen hinzufügen, wird derselbe Name wie in der Quelldatei kopiert. Um den Namen der Zieldatei zu ändern, verwenden Sie:
rsync –a {filename} {destination/filename}
Im folgenden Beispiel kopieren wir „source.zip “ erneut, aber dieses Mal benennen Sie es in „destination.zip“ um “.
„ziel.zip “ wurde in das Dokumentenverzeichnis kopiert, wie im Bild unten gezeigt.
Den Inhalt eines Verzeichnisses zum Ziel kopieren
Sie können den folgenden Befehl verwenden, um den Inhalt Ihres Quellverzeichnisses in das Zielverzeichnis zu kopieren.
rsync –av {source}/ {destination}
Das obige Bild zeigt den Inhalt „Quelle “-Verzeichnis, das in das Verzeichnis „Ziel“ kopiert wird ” Verzeichnis.
Kopieren Sie das gesamte Verzeichnis zum Ziel
Wenn Sie nur den Inhalt Ihres Verzeichnisses zum Ziel kopieren möchten, verwenden Sie:
rsync –av {source} {destination}
Das obige Beispiel kopiert die Datei „Source “-Verzeichnis und seinen Inhalt in das „Destination-Verzeichnis ” Verzeichnis.
Fortschritt anzeigen
Verwenden Sie zum Anzeigen des Fortschritts:
rsync –rv –progress {source} {destination}
Dateien ignorieren
Wenn Sie bestimmte Dateien ignorieren möchten, verwenden Sie:
rsync -vr --exclude '{condition}' {source} {destination}
Die „Quelle ”-Verzeichnis enthält die folgenden Dateien:
Im folgenden Beispiel ignorieren wir Dateien, die mit einem „s“ beginnen “.
Wie das Bild zeigt, wird nur „file “ wird kopiert.
Datei und Verzeichnisse auflisten
rsync kann verwendet werden, um den Inhalt einer Quelle aufzulisten.
rsync {filename}
Der obige Befehl listet den Inhalt des Dokumentenverzeichnisses auf.
Kopieren Sie Dateien von einem lokalen auf einen entfernten Rechner
Um Dateien auf einen Remote-Rechner zu verschieben, müssen Sie openssh-server installieren. Der Befehl dafür lautet:
sudo apt update
sudo apt install openssh-server
Sobald dies installiert wurde, können Sie den folgenden Befehl verwenden, um Ihre Datei oder Ihr Verzeichnis zu verschieben.
rsync –a {source} {remote [email protected] IP:/destination}
Sie werden nach dem Passwort des Remote-Rechners gefragt.
Im folgenden Beispiel verschieben wir „doc ” in das entfernte Home-Verzeichnis.
Mit ls können wir sehen, dass „doc ” wurde hierher verschoben.
Kopieren Sie Dateien von einem entfernten auf einen lokalen Computer
Sie verwenden denselben Befehl wie im obigen Beispiel.
rsync –a {remote source} {local [email protected] IP:/destination}
In diesem Beispiel verschieben wir „remotesrcdoc ” vom entfernten Rechner zum lokalen Rechner.
Mit ls können wir sehen, dass „remotesrcdoc ” wurde hierher verschoben.
Aktuelles Datum zur Zieldatei hinzufügen
Sie können das Datum zum Namen Ihrer Zieldatei oder Ihres Zielverzeichnisses hinzufügen mit:
rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +\\%Y-\\%m)
Im folgenden Beispiel verschieben wir „source.zip ” auf den Desktop, nennen Sie es Ziel und fügen Sie das Datum hinzu.
Anzeigen der Unterschiede zwischen den Quell- und Zieldateien
Der folgende Befehl kann verwendet werden, um die Unterschiede zwischen den Quell- und Zieldateien anzuzeigen.
rsync –avzi {source}/ {destination}/
Das Bild unten zeigt, dass die Dateien „Donuts “ und „Hallo.txt ” sind im Zielverzeichnis nicht vorhanden.
Der Parameter „f “ bedeutet Datei. Weitere Parameter sind:
t:Änderung des Zeitstempels
d:Zieländerung
s:Änderung der Dateigröße
Bandbreite beim Übertragen von Dateien begrenzen
Um die Bandbreite beim Übertragen von Dateien zu begrenzen, verwenden Sie:
rsync -vr --bwlimit=1000 {source}/* {destination}
Im folgenden Beispiel begrenzen wir die Bandbreite auf 1000 KB.
Mehr zu rsync
Um mehr der verfügbaren Optionen auf rsync zu sehen, verwenden Sie:
rsync –help
Wir haben einige der Grundlagen des rsync-Befehls behandelt und gesehen, wie Dateien lokal und remote übertragen und synchronisiert werden.
Wenn Sie Ihre Dateien mit dem Befehl scp synchronisieren möchten, besuchen Sie hier.