SCP ist ein sicheres Kopierprogramm zum Übertragen von Dateien oder Verzeichnissen zwischen Linux-Hosts im Netzwerk. SCP verwendet das ssh-Protokoll, um die Daten zu übertragen.
Sie können Dateien oder Verzeichnisse wie folgt übertragen:
1) Lokaler Host zu einem entfernten Host.
2) Remote-System zu Ihrem lokalen System.
3) Übertragung zwischen zwei entfernten Hosts von Ihrem lokalen System.
In diesem Tutorial lernen wir einige scp-Befehle zum Übertragen von Dateien zwischen Linux-Systemen.
1) Kopieren Sie eine Datei mit dem scp-Befehl vom Remote-Host auf den lokalen Host
Das folgende Beispiel kopiert die Datei mit dem Namen „file_for_copy.txt“ vom Remote-System „192.168.1.10“ in das aktuelle Verzeichnis (der Punkt zeigt das aktuelle Verzeichnis an) auf dem lokalen System.
$ scp bobby@192.168.1.10:/home/bobby/file_for_copy.txt .
bobby@192.168.1.10's password:
file_for_copy.txt 100% 0 0.0KB/s 00:00 bobby@Inspiron-1440:~$ ls
file_for_copy.txt Kopieren Sie mit dem Befehl scp ein Verzeichnis vom Remote-Host auf den lokalen Host
Verzeichnisse können mit -r kopiert werden Option (wie die meisten Befehle wie cp), d.h. rekursiv, sodass der gesamte Inhalt innerhalb des Verzeichnisses auch kopiert werden kann
$ scp -r bobby@192.168.1.10:/home/bobby/dir_for_copy .
bobby@192.168.1.10's password:
file1.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file2.txt 100% 0 0.0KB/s 00:00 $ ls -ld dir_for_copy
drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy 3) Kopieren Sie eine Datei vom lokalen auf den Remote-Host
Die Option -v von scp gibt eine ausführliche Ausgabe aus, die dann scp ausführt und auch Debugging-Meldungen über ihren Fortschritt ausgibt. Im folgenden Beispiel wird die Option -v verwendet. Hier wird eine lokale Datei auf den entfernten Host kopiert.
$ scp -v examples.desktop bobby@192.168.1.10:/home/bobby
Ebenso kann ein Verzeichnis mit -r kopiert werden Möglichkeit. Im folgenden Beispiel wird ein Verzeichnis namens jvm auf den Remote-Host kopiert.
$ scp -r jvm bobby@192.168.1.10:/tmp
bobby@192.168.1.10's password:
file2.txt 100% 42 0.0KB/s 00:00
file.txt 100% 39 0.0KB/s 00:01 4) Kopieren von Dateien zwischen zwei entfernten Hosts vom lokalen Host
Um eine Datei zwischen zwei Hosts zu kopieren, sollte der ssh-Dienst auf beiden Maschinen ausgeführt werden. Die -3 Option überträgt Dateien zwischen zwei entfernten Hosts über den lokalen Host. Der folgende Befehl kopiert die Datei /home/bobby/myfile1.txt von der Maschine 192.168.1.10 in das Verzeichnis /tmp auf der Maschine 192.168.1.20, mit ausführlicher Ausgabe.
$ scp -3 -v bobby@192.168.1.10:/home/bobby/myfile1.txt bobby@192.168.1.20:/tmp Ebenso können Verzeichnisse mit der Option -r zwischen zwei entfernten Rechnern kopiert werden.
$ scp -3 -r bobby@192.168.1.10:/home/bobby/mydir bobby@192.168.1.20:/tmp
bobby@192.168.1.20's password:
Could not chdir to home directory /home/bobby: No such file or directory
bobby@192.168.1.10's password: 5) SCP mit einer Portnummer
Angenommen, der SSH-Port des Remote-Computers ist 2200 (anstelle des standardmäßigen SSH-Ports 22). Dann müssen Sie den scp-Befehl mit -P ausführen Option wie folgt:
$ scp –P 2200 -r test_folder test@192.168.1.26:/home/test/ 6) Scp-Befehl Mehrere Dateien kopieren (ein Liner)
Sie können mehrere Dateien auf einmal kopieren, indem Sie den scp-Befehl wie unten verwenden, ohne ihn mehrmals ausführen zu müssen
$ scp file1.txt file2.txt file3.txt bobby@192.168.1.10:/home/bobby 7) Kopieren Sie Dateien, ohne den Zeitstempel der Dateien zu ändern
Manchmal möchten Sie vielleicht den Zeitstempel der Originaldateien beibehalten. Wenn Sie sie jedoch auf normale Weise an einen anderen Ort verschieben, ändert sich der Zeitstempel. Aber mit -p Option können Sie die Dateien mit denselben ursprünglichen Zeitstempeln wie unten kopieren.
$ scp -p file1.txt bobby@192.168.1.10:/home/bobby 8) Schnelle SCP-Kopierdateien
Standardmäßig verwendet Scp AES-128, um Daten zu verschlüsseln, da die Sicherheit dafür hoch ist. Der Nachteil dabei ist jedoch, dass der Dateikopiervorgang etwas verlangsamt wird. Aber wenn Sie Dateien schneller sicher kopieren möchten, können Sie Blowfish oder RC4 wie unten beschrieben verwenden.
$ scp -c blowfish bobby@192.168.1.10:/home/user/file . $ scp -c arcfour bobby@192.168.1.10:/home/user/file . 9) Scp-Befehl mit erhöhter Sicherheit
Wenn es die Sicherheit ist, die Sie suchen, können Sie Dateien mit 3DES sicherer kopieren. Dies verlangsamt den Vorgang jedoch etwas mehr.
$ scp -c 3des bobby@192.168.1.10:/home/user/file . 10) Scp-Befehl mit begrenzter Bandbreite
Wenn Sie den Befehl scp verwenden, können Sie Ihre Bandbreite wie folgt begrenzen (hier wird die Bandbreite in Kbit/s angegeben).
$ scp -l50 bobby@192.168.1.10:/home/user/file . 11) Scp-Befehl mit IPV4 und IPV6
Bei Bedarf können Sie den scp-Befehl zwingen, IPV4 oder IPV6 wie unten beschrieben zu verwenden
$ scp -4 bobby@192.168.1.10:/home/user/file . $ scp -6 bobby@192.168.1.10:/home/user/file . Schlussfolgerung
Ich hoffe, Sie haben es genossen, dieses Tutorial zur Verwendung des scp-Befehls mit Beispielen zu lesen. Ich würde empfehlen, für weitere Informationen auf die Manpage des scp-Befehls zu verweisen.