Probleme mit dem Linux Secure Copy-Befehl? Verwenden Sie dieses scp-Beispiel
Mit dem Befehl scp können Sie eine Datei effizient zwischen zwei verschiedenen Hosts kopieren. Die Syntax für scp verwendet die Syntax von cp wieder, sodass sie den meisten Linux-Benutzern bekannt vorkommen sollte.
Das Knifflige am Befehl scp ist, dass entweder die Quelle oder das Ziel entfernt sein kann, dh ein Computer, der mit einem anderen Netzwerk verbunden ist als Ihr lokales. Wenn Sie eine Datei zum Kopieren angeben, müssen Sie auch Details zum Remote-Host angeben. Dies beinhaltet die IP-Adresse und den Benutzernamen.
Hochladen einer Datei mit dem Befehl scp
Die allgemeine scp-Syntax lautet:
scp source destination
Beachten Sie, dass dies im Wesentlichen dieselbe Syntax wie der Befehl cp ist .
Das einfachste scp-Beispiel ist das, das Sie wahrscheinlich am häufigsten verwenden: Hochladen einer Datei von Ihrem lokalen Computer auf einen Remote-Server. In diesem Fall ist der Quellteil des Befehls unkompliziert und das Ziel komplizierter:
scp index.html [email protected]:/var/www/html/
Dadurch wird eine lokale Datei mit dem Namen index.html auf den Remote-Host kopiert. Sie können dies genauso angeben, wie Sie eine Datei für einen anderen Befehl angeben würden. Dies kann ein absoluter oder relativer Verweis auf die Datei sein. Also, index.html, ../index.html und /home/bobby/index.html gibt verschiedene Möglichkeiten , die Sie verwenden können , eine lokale Datei angeben.
Das Ziel im Beispiel ist [email protected]: / var / www / html / . Dies bedeutet, dass:
- Der Benutzer Bobby ist der Eigentümer der neuen Datei auf dem Remote-Server. Dieser Benutzer muss vorhanden sein, und Sie sollten darauf zugreifen können.
- Der Hostname des Servers, auf den die Datei hochgeladen wird, lautet example.org . Wir haben die Domain hier angegeben, aber Sie können stattdessen auch eine IP-Adresse verwenden.
- Auf diesem Server lädt scp die Datei in das Verzeichnis / var / www / html / hoch.
Sobald Sie diesen Befehl eingegeben haben, werden Sie von Ihrem Terminal normalerweise zur Eingabe des Kennworts des Benutzers aufgefordert, den Sie auf dem Remotecomputer angegeben haben.
Herunterladen eines gesamten Verzeichnisses
Hier ist eine etwas kompliziertere Variante, die ein ganzes Verzeichnis herunterlädt:
scp -rpC [email protected]:/tmp/docs /home/bobby
Zunächst sollten Sie feststellen, dass die Quelle jetzt ein Remotecomputer ist, während das Ziel lokal ist. Abgesehen von der Bestellumschaltung sollten diese Quell- und Zieldetails bekannt sein. In diesem Beispiel werden jedoch auch drei nützliche Flags vorgestellt:
- -r: Lädt rekursiv ein gesamtes Verzeichnis herunter. Es werden alle Dateien in / tmp / docs übertragen . Dies ist sehr nützlich, um schnelle Sicherungen durchzuführen oder eine große Anzahl von Dateien zu übertragen, insbesondere wenn Sie keinen Anmeldezugriff auf den Remote-Host haben.
- -p: Behält Datei-Zeitstempel und Modi der Originaldateien bei. Ihre lokalen Kopien haben dieselben Erstellungszeiten oder Schreibberechtigungen wie ihre Originale.
- -C: Aktiviert die Komprimierung. Wenn Sie viele Dateien übertragen, kann dies die Arbeit beschleunigen, insbesondere wenn Sie eine langsame Verbindung verwenden.
Der Befehl scp ist fast so einfach wie cp
Die grundlegende Verwendung des Befehls scp ist einfach: Es ist genau das gleiche wie bei cp. Der Hauptunterschied besteht darin, dass scp einige weitere Details für den Remote-Server benötigt. Wie bei cp gibt es jedoch nützliche Flags, um die Basisfunktionalität zu erweitern. Dazu gehören Komprimierung und rekursives Kopieren, um das Herunterladen mehrerer Dateien zu ermöglichen.
Das Beherrschen des Befehls scp kann nützlich sein, wenn Sie aufgefordert wurden, einen Linux-Server zu verwalten. Das Durchführen von Backups und Remote-Datenübertragungen ist eine tägliche Aufgabe für jemanden, der sich mit Serververwaltung befasst.