GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So übertragen Sie Dateien mit Rsync über SSH

Wenn es darum geht, Dateien zwischen Systemen im Netzwerk zu übertragen, stehen Linux- und Unix-Benutzern viele Tools zur Verfügung.

Die beliebtesten Protokolle für die Datenübertragung sind SSH und FTP. Obwohl FTP sehr beliebt ist, sollten Sie SSH immer bevorzugen, da dies die sicherste Methode zum Übertragen Ihrer Dateien ist.

Es gibt spezialisierte Tools für die Dateiübertragung über SSH wie scp und sftp aber keiner von ihnen hat alle Funktionen, die rsync haben bietet. rsync kann zum Spiegeln von Daten, inkrementellen Backups, Kopieren von Dateien zwischen Systemen usw. verwendet werden.

In diesem Tutorial erklären wir, wie man Dateien mit rsync kopiert über SSH.

Anforderungen Nr.

  • Der rsync muss sowohl auf dem Ziel- als auch auf dem Quellsystem installiert sein. Wenn es nicht installiert ist, können Sie es mit dem Paketmanager Ihrer Distribution installieren:

    Ubuntu und Debian:

    sudo apt install rsync

    CentOS und Fedora:

    sudo yum install rsync
  • SSH-Zugriff auf den Remote-Computer.

  • Der Benutzer, der rsync ausführt Befehl und der Remote-SSH-Benutzer muss über die entsprechenden Berechtigungen zum Lesen und Schreiben von Dateien verfügen.

Mit rsync zum Übertragen von Dateien über SSH #

Mit rsync , können Sie Dateien und Verzeichnisse über SSH von und zu entfernten Servern übertragen.

Die allgemeine Syntax zum Übertragen von Dateien mit rsync lautet wie folgt:

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

Wobei SRC ist das Quellverzeichnis, DEST ist das Zielverzeichnis USER ist der entfernte SSH-Benutzername und HOST ist der entfernte SSH-Host oder die IP-Adresse.

Die neueren Versionen von rsync sind so konfiguriert, dass sie SSH als Standard-Remote-Shell verwenden, sodass Sie -e ssh weglassen können Option.

Zum Beispiel, um eine einzelne Datei /opt/file.zip zu übertragen vom lokalen System nach /var/www/ Verzeichnis auf dem entfernten System mit IP 12.12.12.12 Sie würden Folgendes ausführen:

rsync -a /opt/file.zip [email protected]:/var/www/

Das -a Die Option steht für den Archivmodus, der Verzeichnisse rekursiv synchronisiert, spezielle und blockierte Geräte überträgt, symbolische Links, Änderungszeiten, Gruppen, Eigentümer und Berechtigungen beibehält.

Wenn Sie keine kennwortlose SSH-Anmeldung auf dem Remote-Computer eingerichtet haben, werden Sie aufgefordert, das Benutzerkennwort einzugeben.

Wenn die Datei auf dem Remote-Server vorhanden ist, wird sie überschrieben. Wenn Sie die Datei unter einem anderen Namen speichern möchten, geben Sie den neuen Namen an:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Um Daten von einem entfernten auf einen lokalen Rechner zu übertragen, verwenden Sie den entfernten Standort als Quelle und den lokalen Standort als Ziel:

rsync -a [email protected]:/var/www/file.zip /opt/

Verzeichnisse übertragen mit rsync über SSH ist dasselbe wie das Übertragen von Dateien.

Es ist wichtig zu wissen, dass rsync behandelt die Quellverzeichnisse mit einem nachgestellten Schrägstrich / anders . Wenn das Quellverzeichnis einen nachgestellten Schrägstrich hat, rsync kopiert nur den Inhalt des Quellverzeichnisses in das Zielverzeichnis. Wenn der abschließende Schrägstrich weggelassen wird, wird das Quellverzeichnis in das Zielverzeichnis kopiert.

Zum Beispiel um den lokalen /opt/website/images/ zu übertragen Verzeichnis in das Verzeichnis /var/www/images/ Verzeichnis auf einem Remote-Rechner würden Sie Folgendes eingeben:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Verwenden Sie den --delete Option, wenn Sie das lokale und das entfernte Verzeichnis synchronisieren möchten. Seien Sie vorsichtig, wenn Sie diese Option verwenden, da Dateien im Zielverzeichnis gelöscht werden, wenn sie im Quellverzeichnis nicht vorhanden sind.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Wenn SSH auf dem Remote-Host einen anderen Port als den Standardport 22 abhört , geben Sie den Port mit -e an Möglichkeit. Zum Beispiel, wenn SSH auf Port 3322 lauscht Sie würden verwenden:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Bei der Übertragung großer Datenmengen empfiehlt es sich, den rsync auszuführen Befehl innerhalb einer Bildschirmsitzung oder verwenden Sie den -P Option, die rsync mitteilt um während der Übertragung einen Fortschrittsbalken anzuzeigen und die teilweise übertragenen Dateien zu behalten:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Schlussfolgerung #

Wir haben Ihnen gezeigt, wie Sie rsync verwenden über SSH, um Dateien und Verzeichnisse zu kopieren und zu synchronisieren.

Vielleicht möchten Sie auch lesen, wie Sie Dateien oder Verzeichnisse mit rsync ausschließen .

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.


Linux
  1. Herunterladen und Hochladen von Dateien über SSH

  2. Wie kann man Rsync selektiv stumm schalten?

  3. Sichern Sie Ihre Dateien mit rsync

  4. Verwenden Sie ein Gerät über SSH?

  5. Wie kann ich Dateien standardmäßig mit rsync ausschließen?

So verwenden Sie den Befehl rsync, um Daten lokal und über SSH zu kopieren

So übertragen Sie Dateien mit Warp einfach zwischen Linux-Desktops

So übertragen Sie Dateien mit Commander One

So konfigurieren Sie ein Backup mit rsync unter Ubuntu 18.04

So verwenden Sie SSHFS-Mount mit Remote-Verzeichnissen über SSH

So kopieren Sie Dateien aus der Ferne über SSH, ohne ein Passwort einzugeben