Das Übertragen von Dateien zwischen Computern ist eine sehr häufige betriebliche Aufgabe, die Sie als Entwickler ständig erledigen.
Linux bietet eine Reihe von Dienstprogrammen zum Übertragen von Dateien. In diesem Tutorial behandeln wir FTP
und SCP
. Viele automatisierte Skripte verwenden auch FTP oder SCP, um Dateien zu verschieben.
Was ist FTP?
FTP ist ein Netzwerkprotokoll, das für den Austausch von Dateien über das Netzwerk verwendet wird. Es verwendet Port 21. FTP ermöglicht Ihnen den Zugriff auf ein entferntes System zum Austauschen von Dateien unter Verwendung von ftp
Befehl.
FTP-Syntax
Die FTP-Syntax lautet wie folgt:
ftp host
Hier, host
kann entweder der Hostname oder die IP-Adresse des entfernten Hosts sein.
FTP-Befehle
FTP-Befehle ähneln Linux-Befehlen. Wir werden einige davon besprechen.
Befehl | Nutzung |
---|---|
offen | Öffnet eine Fernverbindung mit einem anderen Computer. |
erhalten | Kopiert eine Datei vom entfernten System auf das lokale System. |
setzen | Kopiert eine Datei vom lokalen System in ein Verzeichnis auf dem entfernten System. |
mget | Überträgt mehrere Dateien vom Remote-System in das aktuelle Verzeichnis des lokalen Systems. |
mput | Überträgt mehrere Dateien vom lokalen System in ein Verzeichnis auf dem entfernten System. |
Auf Wiedersehen/Aufhören | Bereit, die FTP-Umgebung zu verlassen. |
schließen | Beendet die FTP-Verbindung. |
ascii | Aktiviert den Dateiübertragungsmodus zu ASCII |
binär | Aktiviert den Dateiübertragungsmodus auf binär. |
So übertragen Sie Dateien per FTP
FTP bietet zwei Übertragungsmodi:ASCII und Binär.
- ASCII steht für American Standard Code for Information Interchange . Es wird verwendet, um einfache Dateien wie Textdateien zu übertragen.
- Binärmodus :Der Binärmodus wird verwendet, um Nicht-Text-Dateien wie Bilder zu übertragen.
Der Standardübertragungsmodus ist ASCII.
Schritt 1 – Mit FTP verbinden
Im Beispiel unten hostA
ist der Remote-Host. Sie werden nach einem Benutzernamen und Passwort gefragt.
$ ftp hostA
Connected to hostA.
220 hostA FTP server ready.
Name (hostA:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is LINUX.
Sobald die Verbindung erfolgreich ist, sehen Sie ftp>
Symbol am Anfang. Jetzt können wir die FTP-Befehle ausführen.
Schritt 2 – Wählen Sie den Dateiübertragungsmodus
Sie können den Modus (binär oder ASCII) je nach Dateityp auswählen.
ftp> ascii
200 Type set to A.
Schritt 3 – Dateien übertragen
Wir verwenden den get
Befehl zum Übertragen der Datei sample.txt
vom entfernten FTP-Server zum lokalen Rechner.
ftp> get sample.txt
200 PORT command successful.
150 Opening ASCII mode data connection for sample.txt (22 bytes).
226 Transfer complete.
local: sample.txt remote: sample.txt
22 bytes received in 0.012 seconds (1.54 Kbytes/s)
Schritt 4. Sitzung beenden
ftp> bye
221-You have transferred 22 bytes in 1 files.
221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA.
221 Goodbye.
So übertragen Sie mehrere Dateien per FTP
Um Dateien in großen Mengen zu übertragen, gibt es zwei Befehle:mget
und mput
.
Sie verwenden mget
um die Dateien herunterzuladen, während Sie mput
verwenden um die Dateien hochzuladen.
ftp> mget sample_file.1 sample_file.2
ftp> mput sample_file.1 sample_file.2
Alle Schritte, die wir gerade gelernt haben, können in einer ausführbaren Datei abgelegt und geplant werden. Den Code für die Automatisierung finden Sie hier.
Was ist SCP?
SCP steht für Secure Copy. Es verwendet SSH und Port 22. Die über SCP übertragenen Daten sind verschlüsselt und Sniffer können nicht darauf zugreifen. Dies macht SCP sehr sicher.
Sie können SCP für Folgendes verwenden:
- Übertragen Sie Dateien vom lokalen Computer auf den Remote-Host.
- Übertragen Sie Dateien vom Remote-Host auf den lokalen Computer.
SCP-Syntax
Sehen wir uns die Syntax von SCP an.
scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2
[FLAG]
gibt die Optionen an, die SCP gegeben werden können. Hier sind einige Details zu Flags:
Flag | Beschreibung |
---|---|
-r | Um Verzeichnisse rekursiv zu kopieren. |
-q | Wird verwendet, um die Fortschrittsanzeige und alle anderen Informationen außer Fehlern auszublenden. |
-C | Wird verwendet, um die Daten zu komprimieren, wenn sie an ihr Ziel gesendet werden. |
-P | Gibt den Ziel-SSH-Port an. |
-p | Erhält Dateizugriffszeiten. |
[user@]SOURCE_HOST
ist die Quellmaschine.[user@]DESTINATION_HOST:]
ist der Zielcomputer.
Hinweis :Um Dateien per SCP zu übertragen, müssen die Zugangsdaten bekannt sein und der Benutzer sollte Schreibrechte haben .
Übertragen von Dateien von einem lokalen Computer auf einen Remote-Host über SCP
Verwenden Sie den folgenden Befehl, um Dateien auf einen Remote-Host zu übertragen:
scp source_file.txt [email protected]:/path/to/remote/directory
Im obigen Befehl source_file.txt
ist die zu kopierende Datei. Remote_username
ist der Benutzername für den Remote-Host 10.13.13.11
. Nach :
der Zielpfad wird angegeben.
Beispielausgabe:
[email protected]'s password:
source_file.txt 100% 0 0.0KB/s 00:00
Die Datei source_file.txt
wird nun in /path/to/remote/directory
abgelegt .
Um Verzeichnisse zu kopieren, verwenden Sie den -r
kennzeichnen, wie unten gezeigt.
scp -r /local/directory [email protected]:/path/to/remote/directory
Übertragen von Dateien vom Remote-Host auf den lokalen Computer über SCP
Verwenden Sie den folgenden Befehl, um Dateien von einem Remote-Host auf einen lokalen Computer zu übertragen:
scp [email protected]:/remote/source_file.txt /path/to/local/directory
Seien Sie besonders vorsichtig, wenn Sie Dateien übertragen, da SCP überschreibt die bereits vorhandenen Dateien.
Abschluss
In diesem Tutorial haben Sie gelernt, wie Sie Dateien und Verzeichnisse mit FTP und SCP über die Befehlszeile übertragen.
Wenn sie automatisiert sind, dienen diese Befehle noch größeren Zwecken bei Data Warehousing, ETL (Extract, Transform, Load), Berichterstellung, Archivierung und Verarbeitung von Massendateien. Probieren Sie diese Befehle aus. Vernetzen wir uns auf Twitter.