SCP steht für Secure Copy. Es ist ein Linux-Befehlszeilendienstprogramm, das zum sicheren Kopieren von Dateien und Verzeichnissen zwischen Servern verwendet wird. SCP verwendet das SSH-Protokoll und erfordert daher eine kennwortlose oder kennwortlose Authentifizierung zwischen Servern. Mit SCP können Sie Dateien zwischen zwei entfernten Hosts von Ihrem lokalen System kopieren sowie Dateien zwischen lokalen und entfernten Hosts kopieren.
In diesem Tutorial zeigen wir Ihnen anhand von Beispielen, wie Sie den SCP-Befehl verwenden.
Voraussetzungen
- Ein frisches Ubuntu 18.04 VPS auf der Atlantic.net Cloud Platform.
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
1. SCP-Syntax
Die grundlegende Syntax des SCP-Befehls ist unten dargestellt:
scp [option] [email protected]:/file_or_directory [email protected]:/directory
Benutzer: Name des Benutzers.
Quell-IP: IP-Adresse des Systems, von dem Sie Dateien oder Verzeichnisse kopieren möchten.
dest-ip: IP-Adresse des Systemzielsystems.
Einige der im scp-Befehl verwendeten Optionen sind unten aufgeführt:
-P: Geben Sie die SSH-Portnummer des Zielhosts an.
-r: Wird verwendet, um Dateien und Verzeichnisse rekursiv zu kopieren.
-v: Wird verwendet, um während der Dateiübertragung eine ausführliche Ausgabe anzuzeigen.
-C: Wird verwendet, um die Dateikomprimierung zu aktivieren.
-i: Geben Sie den SSH-Schlüssel an.
-l: Wird verwendet, um die Bandbreite beim Kopieren zu begrenzen.
-p: Wird verwendet, um Berechtigungen, Modi und Zugriffszeit von Dateien beim Kopieren beizubehalten.
2. Kopieren einer Datei vom lokalen zum entfernten Host
Wenn Sie eine Datei namens /etc/rc.local von localhost auf den Remote-Host (172.20.10.3) im Verzeichnis /mnt kopieren möchten, führen Sie den folgenden Befehl aus:
scp /etc/rc.local [email protected]:/mnt/
Sie sollten die folgende Ausgabe sehen:
[email protected]'s password:rc.local 100 % 306 0,3 KB/s:Wenn Sie mehrere Dateien kopieren möchten (in diesem Beispiel verwenden wir /etc/fstab und /etc/hosts, und kopieren Sie sie auf den Remote-Host (172.20.10.3) in das /mnt-Verzeichnis), führen Sie den folgenden Befehl aus:
scp /etc/fstab /etc/hosts [email protected]:/mnt/Sie sollten die folgende Ausgabe sehen:
[email protected]'s Passwort:FSTAB 100%628 0,6 KB/S 00:00 Hosts 100%249 0,2 KB/S 00:003. Dateien und Verzeichnisse rekursiv kopieren
Sie können die rekursive Option -r mit SCP verwenden, um das gesamte Verzeichnis von einem System auf ein anderes zu kopieren.
Zum Beispiel, um das Verzeichnis mit dem Namen /var/log/apache2 zu kopieren Führen Sie rekursiv von localhost zum entfernten Host (172.20.10.3) im /mnt-Verzeichnis den folgenden Befehl aus:
scp -r /var/log/apache2 [email protected]:/mnt/Sie sollten die folgende Ausgabe sehen:
[email protected]'s Passwort:Fehler.log 100%0 0,0KB/S 00:00 Access.log.3 00:00 Access.log.4.gz 100% 317 0,3 KB/S 00:00 Fehler.log.3.gz 100% 1622 1.6 KB/s 00:00 Fehler.log :00 Access.log 100% 0 0,0 KB/s 00:00 Access.log.1 100% 1287 1.3 KB/s 0 0:00 Access.log.2.gz 100%239 0,2 KB/S 00:00 Fehler.log.2.gz 100%246 0,2 KB/s 00:00 Fehler.log.5.gz 100%1471 1.4KB/ s 00:00 error.log.4.gz 100 % 2296 2,2 KB/s 00:00Sie können auch die Option -v mit SCP verwenden, um während des Kopiervorgangs eine ausführliche Ausgabe anzuzeigen:
scp -vr /var/log/apache2 [email protected]:/mnt/4. Datei vom Remote- auf den lokalen Host kopieren
Wenn Sie eine Datei namens /etc/hostname vom entfernten Host (172.20.10.3) auf den lokalen Host im Verzeichnis /opt kopieren möchten, führen Sie den folgenden Befehl aus:
scp [email protected]:/etc/hostname /opt/Sie sollten die folgende Ausgabe sehen:
[email protected]'s Passwort:Hostname 100%6 0.0kb/s 00:005. Kopieren von Dateien von einem Remote-Host auf einen anderen Remote-Host
Um Dateien und Verzeichnisse zwischen zwei Remote-Hosts zu kopieren, müssen Sie die SSH-Schlüssel-basierte Authentifizierung zwischen beiden Remote-Hosts konfigurieren.
Kopieren Sie nach dem Konfigurieren der schlüsselbasierten Authentifizierung ein Verzeichnis mit dem Namen /var/log von einem Remote-Host (172.20.10.3) auf den anderen Remote-Host (172.20.10.4) im Verzeichnis /mnt und führen Sie den folgenden Befehl aus:
scp -r [email protected]:/var/log [email protected]:/mnt/6. Begrenzung der Bandbreitennutzung beim Kopieren
Sie können die Option -l mit SCP verwenden, um die Bandbreite während des Kopiervorgangs zu begrenzen.
Um beispielsweise eine Datei mit dem Namen google-chrome-stable_current_amd64.deb von localhost auf den Remote-Host (172.20.10.3) im Verzeichnis /opt zu kopieren und die Bandbreite auf 1000 KB/s (1000×8) zu begrenzen, führen Sie den folgenden Befehl aus:
scp -l 8000 /home/vyom/Downloads/google-chrome-stable_current_amd64.deb [email protected]:/opt/Sie sollten die folgende Ausgabe sehen:
passwort von [email protected]:google-chrome-stable_current_amd64.deb 100 % 60 MB/s7. Spezifischen Port mit SCP angeben
In einigen Fällen ist der SSH-Port auf dem Zielhost unterschiedlich. In diesem Fall können Sie die Option -P verwenden, um den SSH-Port anzugeben.
Um beispielsweise eine Datei mit dem Namen /etc/hosts auf dem lokalen System auf den Remote-Host (172.20.10.3) im Verzeichnis /mnt unter Verwendung des Ports 8088 zu kopieren, führen Sie den folgenden Befehl aus:
scp -P 8088 /etc/hosts [email protected]:/mnt/8. Komprimierung beim Kopieren aktivieren
Sie können die Option -C mit SCP verwenden, um die Komprimierung an der Quelle und die Dekomprimierung auf dem Zielhost zu aktivieren. Dies kann die Übertragungsgeschwindigkeit bei großen Dateien erhöhen.
Zum Beispiel, um ein Verzeichnis /var/log/nginx zu kopieren Führen Sie auf dem lokalen Host zum Remote-Host (172.20.10.3) im /mnt-Verzeichnis mit Komprimierung den folgenden Befehl aus:
scp -r -C /var/log/nginx [email protected]:/mnt/Sie sollten die folgende Ausgabe sehen:
[email protected]'s Passwort:Fehler.log 100%0 0,0KB/S 00:00 Access.log.3 /s 00:00 Zugang.log 100%0 0,0 kb/s 00:00 Zugang.log.1 100%90 0,1 kb/s 00:00 Zugang9. Berechtigungen, Modi und Zugriffszeit von Dateien beim Kopieren beibehalten
Sie können die Option -p mit SCP verwenden, um Berechtigungen, Zugriffszeit und Modi während des Kopiervorgangs beizubehalten.
Zum Beispiel, um eine Datei namens magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 zu kopieren Führen Sie auf dem lokalen Host zum Remote-Host (172.20.10.3) im Verzeichnis /mnt und zum Beibehalten von Berechtigungen, Zugriffszeit und Modi den folgenden Befehl aus:
scp -p /home/vyom/Downloads/magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 [email protected]:/mnt/Sie sollten die folgende Ausgabe sehen:
[email protected]'s Passwort:Magento-CE-2.3.5-P1-2020-04-24-08-59-28.tar.bz2 100%112MB 55,9 MB/S 00:02Schlussfolgerung
In der obigen Anleitung haben Sie gelernt, wie Sie SCP verwenden, um Dateien und Verzeichnisse sicher von einem Server auf einen anderen zu übertragen. Beginnen Sie noch heute mit SCP auf einem VPS-Hosting-Konto bei Atlantic.Net!