Kopieren und Sichern von Dateien und Ordnern mit dem Dienstprogramm Rsync

Mehr über Rsync

Rsync ist ein schnelles und vielseitiges Tool zum Kopieren von Dateien und Ordnern. Das Dienstprogramm kann Daten sowohl lokal als auch auf andere Hosts, einschließlich Cloud Storage von Introserv, kopieren.
Mit den Optionen des Dienstprogramms können Sie viele Aspekte des Kopierens und Spiegelns von Daten steuern.
Eine der wichtigsten Funktionen ist die Möglichkeit, Daten beim Senden zu komprimieren, wodurch der Kopiervorgang zwischen Servern beschleunigt werden kann.
Ein weiterer Vorteil ist die Ausnahme beim Kopieren identischer Dateien. Daher werden nur unterschiedliche Dateien kopiert oder übertragen, was zweifellos Zeit bei der Synchronisierung großer Verzeichnisse spart.

Optionen des Dienstprogramms

Sehen wir uns Beispiele für die Verwendung von Rsync zum Kopieren von Dateien und Verzeichnissen auf einen entfernten Cloud-Speicher von Introserv unter Verwendung des SSH-Protokolls an. Wichtig! Mit ähnlichen Befehlen, bei denen nur der Zielserver angegeben wird, können Sie Verzeichnisse und Dateien über SSH auf einen beliebigen Remote-Server kopieren.

Werfen wir einen Blick auf einige der wichtigsten Dienstprogrammoptionen, die am häufigsten verwendet werden. Eine ausführlichere Liste der verfügbaren Optionen finden Sie in der man-Dokumentation(man rsync command):

-v - zeigt detaillierte Informationen über den Prozess an
-c - Dateiprüfsummen prüfen
-q - minimale Informationen
-a - Archivierungsmodus
-R - relative Pfade
-y - neuere Dateien nicht überschreiben
-b - eine Sicherungskopie erstellen
-l - Symlinks kopieren
-L - Inhalte von Links kopieren
-H - feste Links kopieren
-g - Gruppe speichern
-p - Dateirechte erhalten
-t - Änderungszeit speichern
-x - nur in diesem FS arbeiten
-e - ein anderes Transportprotokoll verwenden (z.B. ssh)
-z - Dateien vor der Übertragung komprimieren
--delete - löscht Dateien, die nicht in der Quelle sind
--exclude - Dateien ausschließen
--recursive - Verzeichnisse rekursiv aufzählen
--no-recursive - Rekursion ausschalten
--progress - zeigt den Fortschritt der Dateiübertragung an
--stat - zeigt Übertragungsstatistiken an
--max-size - maximale Dateigröße für die Übertragung
--bwlimit - Geschwindigkeitsbegrenzung für Dateiübertragungen

Kurze Erläuterung der Syntax

rsync -az --progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/

rsync -az--progress gibt an, dass die übertragene Datei archiviert und vor der Übertragung komprimiert werden muss, und zeigt außerdem den Kopierfortschritt auf dem Bildschirm an;

/home/user/test.file: dies ist der Pfad zur Datei und die eigentliche Datei, die übertragen werden muss;

boxxxx@boxxxxx.introserv.cloud: dies ist die Zielressource (in unserem Beispiel ist es ein Cloud-Speicher, aber es kann auch ein Remote-Server sein); boxxxx ist der Benutzername, nach dem Zeichen @ steht der Ressourcenname oder die IP-Adresse des Remote-Servers;

/remote_folder/ ist ein Ordner auf einer entfernten Ressource. In unserem Beispiel - im Introserv Cloud Storage.

Kopieren einer Datei in einen Ordner auf einem entfernten Speicher

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Sie werden aufgefordert, ein Passwort für die Verbindung zum Speicher einzugeben:

Geben Sie das Passwort ein und fahren Sie fort. Sie werden den Fortschritt und die Geschwindigkeit der Dateiübertragung sehen:

Kopieren eines Ordners in einen Ordner auf einem entfernten Speicher

Achten Sie auf die Schrägstriche in den Zeilen des Quell- und Zielordners. Das Fehlen eines Schrägstrichs im Quellordner zeigt an, dass wir den lokalen Desktop-Ordner mit seinem gesamten Inhalt rekursiv in den Ordner remote_folder übertragen wollen

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Sie werden sehen, dass das Verzeichnis und alle darin enthaltenen Dateien übertragen werden:

Kopieren des Inhalts eines lokalen Ordners in einen Ordner auf einem entfernten Speicher

Achten Sie auf den Schrägstrich am Ende des Quellordners. Sein Vorhandensein zeigt an, dass das Dienstprogramm den Inhalt des lokalen Ordners in einen Ordner auf dem entfernten Speicherplatz kopieren soll

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Sie sehen den Fortschritt und die Kopiergeschwindigkeit:

Kopieren eines Ordners von einem entfernten Speicher in einen lokalen Serverordner

Mit Rsync können Sie eine Kopie eines Ordners von einem entfernten Speicherort starten. Der Befehl sieht wie folgt aus:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Sie werden den Fortschritt und die Geschwindigkeit des Kopierens eines entfernten Ordners in einen Ordner auf dem lokalen Server sehen:

Kopieren des Inhalts eines Ordners von einem entfernten Speicherort in einen lokalen Serverordner

Auch hier lohnt es sich, auf den Schrägstrich am Ende des Quellordnerpfads zu achten. Sein Vorhandensein zeigt an, dass nur der Inhalt des Ordners kopiert werden muss

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/

Kopieren des Inhalts eines Ordners ohne und/oder mit Dateien

Mit dem Dienstprogramm können Sie explizit angeben, welche Dateien übertragen und welche ausgeschlossen werden sollen. Verwenden Sie dazu die Optionen --include und --exclude.

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Sie werden sehen, dass nur eine Datei übertragen wird, die durch die Option --include angegeben ist. Bitte beachten Sie, dass die Optionen include und exclude unabhängig voneinander verwendet werden können

Nur Dateien kopieren, die sich von den Dateien im Zielordner unterscheiden

Um das Kopieren von identischen Dateien abzubrechen, sollten Sie die Option -c verwenden, um die Prüfsummen der Dateien zu überprüfen. Damit können Sie die Dateien, die sich bereits im Zielordner befinden, vom Kopiervorgang ausschließen

rsync -azrс --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Sie werden sehen, dass nur 3 Dateien in den entfernten Ordner kopiert wurden, mit Ausnahme der Datei test.odt, die sich bereits auf dem entfernten Speicher befindet:

Verwendung von Rsync über SSH mit einem nicht standardmäßigen SSH-Port

Um Dateien von/zu einem Server mit einem geänderten SSH-Port zu übertragen, verwenden Sie die Option -e 'ssh -p port_number' .

Der Befehl zum Kopieren einer Datei auf einen Server, bei dem der SSH-Port auf 44 geändert wurde, sieht folgendermaßen aus:

rsync -azrс --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/