SCP, allgemein bekannt als Secure Copy Command, ist ein Dienstprogramm, das von Linux-Systemen zum Kopieren von Dateien und Verzeichnissen zwischen Hosts im Netzwerk verwendet wird. SSH wird verwendet, um Dateien zu übertragen und Benutzer zu authentifizieren. Da Sie Anmeldeinformationen benötigen, um über ssh auf einen Remote-Server zuzugreifen, müssen Sie auf ähnliche Weise die Anmeldeinformationen der Remote-Hosts kennen, während Sie SCP-Befehle ausführen. In diesem Artikel lernen wir einige nützliche SCP-Befehle kennen.
Datei von einem Server auf einen anderen kopieren
Verwenden Sie den folgenden Befehl, um eine einzelne Datei von einem Server auf einen anderen im Netzwerk zu kopieren.
$ scp file.txt [email protected]:/root/Linuxways
Dabei ist file.txt der Dateiname, root der Benutzername des Remote-Hosts, 192.168.178.10 die Adresse des Remote-Servers und /root/Linuxways das Remote-Verzeichnis.
Finden Sie den Kopierstatus
Der Scp-Befehl kann zusammen mit der Option -v verwendet werden, um den Kopierstatus anzuzeigen.
$ scp -v file [email protected]:/root/Linuxways
Ausgabe:
Dateiattribute beibehalten
Sobald wir Dateien/Ordner auf den Zielserver kopiert haben, erhalten die kopierten Dateien den neuesten Zeitstempel des Zielservers. Verwenden Sie den SCP-Befehl mit der Option -rvp, um Dateiattribute wie Berechtigung, Zeitstempel beizubehalten.
$ scp -rvp file [email protected]:/root/Linuxways
Ausgabe :
Quelle:
Ziel :
SCP-Ausgabe verbergen
SCP-Ausgaben einschließlich Warnungen, Fehler und Fortschrittsanzeige können unterdrückt werden, indem SCP mit der Option -q as:
verwendet wird$ scp -q file [email protected]:/root/Linuxways
Datei über einen zufälligen Port übertragen
Der Scp-Befehl mit der Option -P kann verwendet werden, um die Dateien über einen anderen Port als den Standardport 22 zu übertragen. Geben Sie den SSH-Port nach dem Befehl -P an und führen Sie den SCP-Befehl wie folgt aus:
$ scp -P 4022 file [email protected]:/root/Linuxways
Wobei 4022 der benutzerdefinierte SSH-Port des Remote-Hosts ist.
Authentifizierungsschlüssel statt Passwort verwenden
Wenn der Remote-Host mit SSH-Schlüsselauthentifizierung anstelle eines Kennworts konfiguriert ist, müssen Sie die SSH-Schlüsseldatei verwenden, um auf den Remote-Host zuzugreifen. Um die Dateien/Verzeichnisse zu übertragen, geben Sie die ssh-Schlüsseldatei an und führen Sie den SCP-Befehl mit der Option -i als:
aus$ scp -i private.pem file [email protected]:/root/Linuxways
Dabei ist private.pem die Schlüsseldatei für die Remote-Server-Authentifizierung
Bandbreite begrenzen
Die Bandbreite der Dateiübertragung kann mit dem SCP-Befehl mit der Option -l begrenzt werden. In diesem Beispiel habe ich die Bandbreite auf 200 kbit/s beschränkt
$ scp -l 200 centos-iso.tar.gz [email protected]:/root/Linuxways
Datei von einem entfernten Host kopieren
Dateien/Ordner können mit dem SCP-Befehl von einem Remote-Server auf den lokalen Host kopiert werden:
$ scp [email protected]:/root/Linuxways/file .
Dabei ist root der Benutzername des Remote-Rechners 192.168.178.10, /root/Linuxways ist das Remote-Verzeichnis und . ist das aktuelle Verzeichnis auf dem lokalen Server.
Ausgabe:
Der Scp-Befehl mit der Option -r kann verwendet werden, um Verzeichnisse vom entfernten Host zu kopieren als:
$ scp -r [email protected]:/root/Linuxways .
Wobei Linuxways der Name des entfernten Verzeichnisses ist.
Ausgabe:
Nur IPv4-basierte Dateien übertragen
Nur die IPV4-Adresse kann verwendet werden, um entfernte Hosts zu kontaktieren, um Dateien/Verzeichnisse mit dem SCP-Befehl mit der Option -4 als:
zu übertragen$ scp -4 file [email protected]:/root/Linuxways
Wenn Sie nur die IPv6-Adresse verwenden müssen, führen Sie den SCP-Befehl wie folgt aus:
$ scp -6 file [email protected]:/root/Linuxways
Strikte Dateiüberprüfung deaktivieren
Die strenge Dateiüberprüfung beim Kopieren von Dateien/Ordnern vom Remote-Host auf den lokalen Server kann deaktiviert werden, indem der SCP-Befehl mit der Option -T as:
verwendet wird$ scp -T [email protected]:/root/Linuxways/documents.tar.gz .
Dabei ist 192.168.178.10 der Remote-Host und documents.tar.gz der Dateiname.
Dateien/Ordner für schnellere Übertragung komprimieren
Dateien/Verzeichnisse können mit dem SCP-Befehl mit der Option -C komprimiert werden, während sie auf einen Remote-Server kopiert werden. Die Komprimierung der Datei erfolgt auf Netzwerkebene und am Ziel entspricht die Dateigröße der Quelle.
$ scp -C centos.iso.tar.gz [email protected]:/root/Linuxways
Verzeichnis statt Dateien kopieren
Sie können Verzeichnisse anstelle einzelner Dateien separat kopieren, indem Sie den SCP-Befehl mit der Option -r as:
verwenden$ scp -r example [email protected]:/tmp
Wo Beispiel der Name des Ordners ist.
Mehrere Dateien kopieren
Mehrere Dateien können mit dem SCP-Befehl auf einen Remote-Server kopiert werden, indem der Name der Dateien wie folgt angegeben wird:
$ scp file file1 file2 file3 file4 [email protected]:/root/Linuxways
Wobei Datei Datei1 Datei2 Datei3 und Datei4 der Dateiname ist.
Verwenden Sie eine andere Chiffre, um Dateien/Ordner zu verschlüsseln
Während der Dateiübertragung verwendet Linux den AES-128-Algorithmus, um die Dateien zu verschlüsseln. Andere Verschlüsselungsalgorithmen können mit dem SCP-Befehl mit der Option -c verwendet werden. In diesem Beispiel habe ich die 3des-cbc-Chiffre verwendet, um die Dateien zu verschlüsseln.
$ scp -c 3des-cbs file [email protected]:/root/Linuxways
Remote-zu-Remote-Host-Kopie
Dateien/Verzeichnisse können von einem Remote-Host (Beispiel Host1) auf einen anderen Remote-Host (Host2) von Localhost (Host) kopiert werden als:
$ scp [email protected]:/root/Linuxways/file [email protected]:/root/Linuxways
Wobei 192.168.178.10 -> Remote-Host (host1)
192.168.178.11 -> Remote-Host (host2)
Schlussfolgerung
In diesem Artikel haben wir einige nützliche SCP-Befehle zum Kopieren von Dateien/Ordnern zwischen Hosts im Netzwerk kennengelernt. Wenn Sie Vorschläge und Feedback haben, hinterlassen Sie bitte einen Kommentar.