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

4 Möglichkeiten zum Übertragen von Dateien und Verzeichnissen unter Linux

Als Linux-Systemadministrator gibt es viele verschiedene Möglichkeiten, Dateien zu übertragen , sicher oder nicht, zwischen zwei verschiedenen Hosts.

Während Ihrer täglichen Arbeit werden Sie möglicherweise gebeten, einige große Überweisungen durchzuführen zwischen zwei entfernten Servern.

Möglicherweise müssen Sie eine gesamte Datenbank sichern auf einem sicheren freigegebenen Laufwerk, oder Sie möchten einfach eine Remote-Datei auf Ihr System übertragen.

Folglich möchten Sie Dateien übertragen , aber Sie möchten es auf eine sehr sichere Art und Weise tun.

Glücklicherweise gibt es viele verschiedene Befehle, die Sie verwenden können, um dies zu erreichen.

In diesem Tutorial werden wir all die verschiedenen Möglichkeiten sehen, Dateien zwischen Hosts unter Linux zu übertragen Verwenden Sie entweder ftp, sftp, scp oder rsync.

Bereit?

Hier sind alle Möglichkeiten zum Übertragen von Dateien unter Linux:

Übertragen von Dateien unter Linux mit FTP

Die erste Möglichkeit, Dateien unter Linux zu übertragen, ist die Verwendung von ftp Befehl .

Standardmäßig verwendet das FTP-Protokoll das ungesicherte TCP-Protokoll .

Das bedeutet, dass jemand, der über das Netzwerk gesendete Daten oder Pakete verfolgen würde, sehen könnte, was Sie an entfernte Hosts senden.

In den meisten Fällen möchten Sie dies für Ihre Dateiübertragungen nicht, insbesondere wenn sie über das Internet erfolgen.

Wir werden jedoch weiterhin die Syntax für den Befehl ftp bereitstellen, da es nützlich sein kann, ihn der Einfachheit halber über lokale Netzwerke zu verwenden.

Standardmäßig hat Ihre Distribution den FTP-Befehl möglicherweise nicht standardmäßig installiert.

Um zu überprüfen, ob FTP auf Ihrem Host installiert ist, können Sie den folgenden Befehl ausführen

$ command -v ftp

Wenn Ihnen keine Ausgaben bereitgestellt werden, bedeutet dies, dass der FTP-Server auf Ihrem System nicht verfügbar ist.

FTP auf Debian-basierten Distributionen installieren

Um es auf Debian zu installieren -basierten Distributionen führen Sie den folgenden Befehl aus

Um neue Pakete zu installieren, benötigen Sie sudo-Berechtigungen für Ihre Debian-Distribution

$ sudo apt-get install ftp

Führen Sie nach der Installation den Befehl „command“ erneut aus, um sicherzustellen, dass er korrekt auf Ihrem System verfügbar ist.

$ command -v ftp
/usr/bin/ftp

FTP auf Red Hat-basierten Distributionen installieren

Um FTP auf Red Hat-basierten Distributionen zu installieren, müssen Sie die folgenden Befehle ausführen

Um neue Pakete auf RHEL zu installieren oder CentOS , müssen Sie über sudo-Berechtigungen für Ihre CentOS-Distribution verfügen.

$ sudo yum install ftp

Führen Sie erneut den Befehl „command“ aus, um zu überprüfen, ob Ihre Pakete korrekt installiert wurden

$ command -v ftp
/usr/bin/ftp

Stellen Sie mit FTP eine Verbindung zu entfernten Hosts her

Um sich mit dem ftp-Befehl mit entfernten Hosts zu verbinden, müssen Sie die folgende Syntax verwenden

$ ftp <destination_ip>

Beim Verbinden sollten Sie Folgendes sehen, wenn Sie sich mit einem nicht geschützten FTP-Server verbinden.

Geben Sie den Benutzernamen ein, der Ihnen zugewiesen wurde, um sich mit diesem FTP-Server zu verbinden.

Sie werden aufgefordert, Ihr Passwort einzugeben. Wenn die Anmeldeinformationen korrekt sind, sollten Sie sich direkt bei Ihrem FTP-Server anmelden können.

Dateien unter Linux mit FTP herunterladen

Wenn Sie mit Ihrem FTP-Server verbunden sind, haben Sie viele Möglichkeiten, damit zu interagieren.

Drücken Sie zuerst „? “, um alle verfügbaren Befehle anzuzeigen.

Wie Sie sehen können, sind die verfügbaren Befehle ziemlich identisch mit denen, die Sie auf einem Standard-Linux-System finden würden.

Standardmäßig erhalten Sie auf Ihrem FTP-Server einen FTP-Shell-Zugriff direkt auf Ihr Home-Verzeichnis.

Um alle Dateien anzuzeigen, die Ihnen im aktuellen Verzeichnis zur Verfügung stehen, führen Sie den folgenden Befehl aus

$ ls

Wie Sie hier sehen können, liste ich die Einträge meines Home-Verzeichnisses auf.

Um in einem der Ordner zu navigieren, drücken Sie den Standardbefehl „cd“ mit dem Pfad, zu dem Sie navigieren möchten.

Um eine Datei aus dem aktuellen Verzeichnis herunterzuladen, müssen Sie den folgenden Befehl ausführen

$ get <file>

Das Lokal wird in Ihr aktuelles Arbeitsverzeichnis auf dem lokalen Rechner kopiert, d. h. in den Pfad, von dem aus Sie den FTP-Befehl ursprünglich gestartet haben.

Nebenbei bemerkt:Wenn Sie mehrere Dateien von Ihren Remote-Hosts herunterladen möchten, müssen Sie den Befehl „mget“ mit der folgenden Syntax verwenden

$ mget <file1> <file2> ... <filen>

Herzliche Glückwünsche!

Sie haben eine Datei erfolgreich per FTP von Ihrem entfernten Computer auf Ihren lokalen Computer übertragen.

Hochladen von Dateien unter Linux mit FTP

Mit FTP können Sie Dateien von Ihren entfernten Hosts herunterladen, aber Sie können auch Dateien auf Ihre entfernten Hosts hochladen.

Um Dateien per FTP hochzuladen, müssen Sie den „put“-Befehl mit der folgenden Syntax verwenden

$ put <file>

Ihre Datei sollte jetzt auf Ihrem Remote-Host zugänglich sein, im Home-Verzeichnis des Benutzers, den Sie zum Übertragen Ihrer Dateien verwenden.

$ ls /home/<user>
file.txt

Wenn Sie mehrere Dateien auf Ihre Remote-Hosts hochladen möchten, können Sie auf ähnliche Weise "mput" auf diese Weise verwenden

$ mput <file1> <file2> ... <filen>

Herzlichen Glückwunsch!

Sie haben Dateien erfolgreich per FTP von Ihrem lokalen Host auf Ihren Remote-Host übertragen.

Übertragen von Dateien mit sftp unter Linux

Eine sicherere Methode zum Übertragen von Dateien zwischen zwei Hosts ist die Verwendung des Befehls sftp.

Der sftp-Befehl, der für "Secure File Transfer Protocol" steht “, ist eine Möglichkeit, Dateien zwischen zwei Hosts mit verschlüsseltem Datenverkehr zu übertragen.

Selbst wenn jemand den Datenverkehr zwischen Ihnen und dem Remote-Host abfängt, kann dieser ihn daher nicht entschlüsseln, ohne Zugriff auf Ihre SSH-Schlüssel zu haben.

Wenn Sie den Befehl sftp verwenden, muss der Host, auf den Sie versuchen, Dateien herunter- oder hochzuladen, mit einem SSH-Server ausgestattet sein.

Wenn Sie einen OpenSSH-Server auf Ihrem Remote-Host verwenden, können Sie sich mit ihm verbinden, um Dateiübertragungen durchzuführen.

Standardmäßig sftp sollte auf Ihrem System verfügbar sein, aber Sie können es überprüfen, indem Sie den folgenden Befehl ausführen.

$ command -v sftp
/usr/bin/sftp

Mit sftp eine Verbindung zu entfernten Hosts herstellen

Um sich mit sftp mit entfernten Hosts zu verbinden, müssen Sie die folgende Syntax verwenden

$ sftp <destination_ip>

Wenn Sie sich zum ersten Mal mit einem entfernten Host verbinden, werden Sie standardmäßig aufgefordert, den Host zur Liste der vertrauenswürdigen Hosts Ihres Systems hinzuzufügen (standardmäßig unter /home/user/.ssh/known_hosts).

Nachdem Sie nun mit Ihrem Remote-SSH-Server verbunden sind, ist die Syntax zum Navigieren oder Übertragen von Dateien dieselbe wie beim Standard-ftp-Befehl.

Dateien unter Linux mit sftp herunterladen

Zunächst einmal können Sie auf „?“ klicken. um alle Befehle zu sehen, die Ihnen auf dem SSH-Server zur Verfügung stehen.

Drücken Sie zunächst den Befehl „ls“, um alle Dateien und Ordner anzuzeigen, die Ihnen auf dem Remote-System zur Verfügung stehen.

$ ls

Wie Sie sehen können, listet dieser Befehl den gesamten Ordner auf, in dem ich mich gerade befinde (in diesem Fall das Home-Verzeichnis).

Um zu einem Ordner zu navigieren, drücken Sie den „cd“-Befehl, der normalerweise auf einem Standard-FTP-Server ausreichen würde.

$ cd <path>

Um eine Datei auf einen SFTP-Server herunterzuladen, verwenden Sie den Befehl „get“ mit dieser Syntax

$ get <file>

Die Datei wird aus dem aktuellen Remote-Verzeichnis in das lokale Verzeichnis kopiert, in dem Sie den sftp-Befehl gestartet haben.

Herzliche Glückwünsche! Sie haben die Dateien korrekt von Ihrem Remote-Host auf Ihren lokalen Computer übertragen.

Hochladen von Dateien unter Linux mit sftp

Alternativ können Sie Dateien zwischen Ihrem lokalen Computer und Ihrem Remote-Host übertragen.

Um Dateien mit sftp zu übertragen, müssen Sie den Befehl „put“ verwenden.

$ put <file>

Wenn Sie die Einträge Ihres entfernten Verzeichnisses auflisten, sollten Sie Ihre Datei sehen können.

$ sftp> ls -l

Herzlichen Glückwunsch!

Sie haben erfolgreich Dateien von Ihrem lokalen Host auf Ihren Remote-Computer übertragen.

Übertragen von Dateien unter Linux mit scp

Eine der anderen Möglichkeiten, Dateien zwischen zwei Hosts unter Linux zu übertragen, ist die Verwendung des scp-Befehls.

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Der Befehl scp stellt eine sichere Verbindung zwischen den beiden Hosts her und verwendet den Standard-SSH-Port, um Dateien zu übertragen.

Folglich benötigen Sie einen SSH-Server auf Ihrem Zielhost, damit die Datei übertragen werden kann.

Um beispielsweise eine lokale Datei von Ihrem aktuellen Computer auf einen Remote-Host zu übertragen, würden Sie den folgenden Befehl ausführen

$ scp file [email protected]:file

Wenn Sie keinen absoluten Pfad angeben, werden die Dateien standardmäßig direkt in das Home-Verzeichnis des Benutzers kopiert, mit dem Sie sich verbinden.

Wenn ich jetzt die Dateien auf meinem entfernten Host überprüfe, sollte die Datei im Home-Verzeichnis des Benutzers liegen.

Übertragen von Verzeichnissen unter Linux mit scp

Mit dem scp-Befehl ist es auch möglich, ganze Verzeichnisse auf den Zielhost zu übertragen.

Um Verzeichnisse zu kopieren, müssen Sie die Option „-r“ angeben.

Nehmen wir das Beispiel eines Ordners namens „Verzeichnis“ mit 3 Dateien darin. Um sie zu kopieren, müssen Sie den folgenden Befehl verwenden

$ scp -r directory [email protected]:.

Wenn Sie die Verzeichnisse auf Ihrem Zielhost überprüfen, sollten Sie Ihr übertragenes Verzeichnis sehen können.

Beachten Sie, dass, wenn Sie ein benutzerdefiniertes Verzeichnis auf dem Ziel angeben, es erstellt wird, wenn es nicht standardmäßig vorhanden ist.

Übertragen von Dateien zwischen zwei Remote-Hosts

Im vorherigen Beispiel haben wir einen lokalen Host mit einem entfernten Host verwendet, den wir über seine IP-Adresse kontaktiert haben.

Jetzt müssen Sie möglicherweise Dateien zwischen zwei entfernten Hosts mit zwei unterschiedlichen IP-Adressen übertragen.

Um Dateien zwischen diesen beiden Hosts zu übertragen, führen Sie den folgenden Befehl aus

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Zum Beispiel würde es zu

führen
$ scp [email protected]:file [email protected]:file

Beachten Sie, dass Sie in diesem Fall zwei SSH-Server auf beiden Instanzen benötigen, sonst funktioniert es nicht.

Scp mit Fortschrittsbalken verwenden

Um Statistiken für den scp-Prozess anzuzeigen, müssen Sie die Option „-v“ (das steht für verbose) angeben

$ scp -v <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Übertragen von Dateien unter Linux mit rsync

Schließlich besteht die letzte Möglichkeit, Dateien zwischen zwei Hosts unter Linux zu übertragen, darin, den Befehl rsync zu verwenden.

Der Befehl rsync verwendet ebenfalls ein sicheres Protokoll, da er für die Datenübertragung auf das SSH-Protokoll angewiesen ist. Es kann auf viele verschiedene Arten verwendet werden, aber wir werden uns in diesem Tutorial auf Dateiübertragungen konzentrieren.

Die scp- und rsync-Befehle sind sehr ähnlich, aber rsync bietet viel mehr Funktionalitäten für Dateiübertragungen. Sie können beispielsweise bestimmte Dateien einbeziehen und andere ausschließen. Sie können sich auch dafür entscheiden, Berechtigungen oder Hardlinks während eines Kopiervorgangs beizubehalten.

Insgesamt ist rsync eine Obermenge des scp-Befehls.

Standardmäßig ist der Befehl rsync möglicherweise nicht auf Ihrem System installiert. Um es zu installieren, befolgen Sie diese Anweisungen.

Installieren von rsync auf Debian-basierten Distributionen

Um rsync zu installieren, müssen Sie ein sudo-Benutzer auf Ihrem Host sein.

Um rsync zu installieren, führen Sie den folgenden Befehl aus

$ sudo apt-get install rsync

Führen Sie abschließend den Befehl aus, um sicherzustellen, dass er ordnungsgemäß installiert wurde.

$ rsync --help

Installieren von rsync auf Red Hat-basierten Distributionen

Um rsync auf RHEL oder auf CentOS zu installieren, führen Sie den folgenden Befehl aus

$ sudo yum install rsync

Führen Sie auf ähnliche Weise die Hilfeoption aus, um sicherzustellen, dass sie korrekt installiert wurde.

$ rsync --help

Verwenden von rsync zum Übertragen von Dateien unter Linux

Nachdem rsync nun korrekt auf Ihrem Host installiert ist, können Sie es folgendermaßen verwenden

$ rsync <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Um beispielsweise Dateien von einem lokalen Host auf einen Remote-Rechner zu übertragen, würden Sie den folgenden Befehl ausführen

$ rsync file [email protected]:file

Um Dateien von Ihrem Remote-Host auf Ihren lokalen Computer zu kopieren, würden Sie auf ähnliche Weise

ausführen
$ rsync [email protected]:file file

Verwenden von rsync zum Übertragen von Verzeichnissen unter Linux

Mit rsync können Sie auch komplette Verzeichnisse von einem lokalen Host auf einen entfernten übertragen.

Sie müssen lediglich die Option „-r“ an Ihre aktuelle Syntax anhängen

$ rsync -r <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Beim Kopieren von Verzeichnissen gibt es eine Regel, die Sie beachten müssen.

Bei der Angabe des Quellverzeichnisses haben Sie die Möglichkeit, am Ende einen abschließenden Schrägstrich hinzuzufügen, um den Inhalt des Verzeichnisses und nicht das Verzeichnis selbst zu kopieren.

Nehmen wir zur Veranschaulichung an, dass Sie ein Verzeichnis mit dem Namen „Verzeichnis“ haben, das Sie in ein Remote-Verzeichnis mit dem Namen „Directory“ auf Ihrem Remote-Computer übertragen möchten.

Bei Verwendung einer nachgestellten Syntax würden Sie Folgendes auf Ihrem Remote-Host erhalten

$ rsync directory/ [email protected]:directory

Auf dem Remote-Host

/home/user/
├── directory
    ├── file1
    ├── file2
    ├── file3

Wenn Sie jedoch rsync ohne nachgestellten Schrägstrich schreiben, also

$ rsync directory [email protected]:directory

Auf dem Remote-Host

/home/user/
├── directory
    ├── directory
        ├── file1
        ├── file2
        ├── file3

Daher sollten Sie beim Kopieren von Dateien von einem Host auf einen anderen standardmäßig nachgestellte Schrägstriche verwenden, um doppelte Verzeichnisnamen zu vermeiden.

Rsync mit Fortschrittsbalken verwenden

Eine sehr praktische Möglichkeit, rsync zu verwenden, besteht darin, einen Fortschrittsbalken für lange Übertragungen damit zu verknüpfen.

Um einen Fortschrittsbalken bei der Verwendung von rsync zu haben, müssen Sie die Option „–progress“ (für Menschenlesbarkeit) verwenden

$ rsync --progress <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie Dateien unter Linux einfach mit dem Befehl ftp, den Befehlen sftp, scp oder rsync übertragen können.

Sie haben die Unterschiede zwischen diesen Befehlen gesehen und wie sie verwendet werden können, um komplette Verzeichnisse zu übertragen.


Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. Finden Sie Dateien und Verzeichnisse in Linux wie ein Profi

  3. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  4. Kopieren Sie Dateien und Verzeichnisse unter Linux

  5. So entfernen Sie Dateien und Verzeichnisse in der Linux-Befehlszeile [Anfänger-Tutorial]

So komprimieren Sie Dateien und Verzeichnisse unter Linux

So verschieben Sie Dateien und Verzeichnisse in Linux (mv-Befehl)

Rm-Befehl unter Linux

3 Möglichkeiten, Dateien und Verzeichnisse in Linux zu finden

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

Grundlagen der Linux-Befehlszeile – Arbeiten mit Dateien und Verzeichnissen