it-swarm.com.de

Wie ziehe ich eine Datei mit scp von einem Server?

Ich bin auf Maschine A und möchte eine Datei von Maschine B abrufen.

A$ scp <myuserid>@hostB:<path of file in B> .

es steht dass:

scp: <path of file in B>: No such file or directory

Auf Computer B ist diese Datei jedoch in diesem Pfad vorhanden.

Was läuft falsch?

32
xyz

Sie haben keine Datei angegeben: Sie müssen die Datei (mit Pfad) nach dem Doppelpunkt hinzufügen:

A$ scp <myuserid>@hostB:/absolutepath/file .

oder

A$ scp <myuserid>@hostB:relativepath/file .

für einen Pfad relativ zu Ihrem Home-Verzeichnis.

Wenn Sie keinen anderen Benutzer angeben (d. H. Der Benutzer auf A und B ist derselbe), benötigen Sie den @ Nicht.

A$ scp hostB:/path/file .
45
Matteo
$ scp [email protected]:remote_location_file /location/where/you/save

Dies funktioniert nur, wenn Sie eine Datei kopieren. Wenn Sie ein Verzeichnis kopieren möchten, verwenden Sie

$ scp -r [email protected]:remote_location_directory /location/where/you/save

Option, die Sie bei Bedarf verwenden können

-P Port
Gibt den Port an, zu dem eine Verbindung auf dem Remote-Host hergestellt werden soll. Beachten Sie, dass diese Option mit einem Großbuchstaben "P" geschrieben wird, da -p bereits für die Beibehaltung der Zeiten und Modi der Datei in rcp reserviert ist.

-p
Behält Änderungszeiten, Zugriffszeiten und Modi aus der Originaldatei bei.

-r
Kopieren Sie rekursiv ganze Verzeichnisse.

-v

Ausführlicher Modus. Bewirkt, dass scp und ssh Debugging-Meldungen über ihren Fortschritt drucken. Dies ist hilfreich beim Debuggen von Verbindungs-, Authentifizierungs- und Konfigurationsproblemen.

4
Rakib

verwenden Sie den richtigen SCP-Pfad

scp ssh://[email protected]/tmp/foo.txt .
2
BigMike

Man kann SCP in beide Richtungen leicht ausführen, wenn man den DMZ Benutzer und Passwort hat). Sie befinden sich an Ihrem lokalen Computer: Von DMZ zu Ihrem lokalen Linux-Computer (Pull). Kopieren Sie abc.text in Ordner2 auf Ihre aktuell angemeldete PWD.

scp [email protected]:folder1/folder2/abc.txt .

Es wird nach dem Passwort gefragt

das ist alles

Jetzt möchten Sie einen Ordner mit Unterordnern und Dateien von Ihrem lokalen Computer an DMZ senden:

usr @ localmachine: ~/abc/defs> scp -r Ordner/usr @ 111111: vkrishna/docker /

erneut wird das Passwort abgefragt

: ist der Stammordner des Remote-Computers und vkrishna ist dort ein Ordner und wieder ein Docker-Unterordner. Lokal defs Ordner hat einen Ordner namens "Ordner", den wir vollständig übertragen möchten.

Wie/abc/defs/Ordner

1
vimal krishna

Sie können entweder einen Dateipfad angeben, der relativ zu Ihrem Ausgangsverzeichnis ist, oder einen absoluten Dateipfad. Wenn sich beispielsweise foo.txt In einem Verzeichnis mit dem Namen docs unter Ihrem Ausgangsverzeichnis befindet und bar.txt In /var/tmp Befindet, können Sie dies tun

scp [email protected]:docs/foo.txt .
scp [email protected]:/var/tmp/bar.txt .

Beachten Sie, dass Sie, wenn der Dateiname Zeichen enthält, die für die Remote-Shell speziell sind (normalerweise Leerzeichen oder !"#$&'*;<>?[\]^`{|}~), Diese für die Remote-Shell zusätzlich zu der lokalen Shell maskieren müssen. Wenn die Datei beispielsweise foo bar.txt Heißt und sich in Ihrem Home-Verzeichnis befindet:

scp [email protected]:'foo\ bar.txt' .

Wenn Sie Probleme mit Dateien mit Satzzeichen haben, versuchen Sie, diese mit sftp anstelle von scp zu übertragen. Oder verwenden Sie eine noch bequemere Methode, wenn Sie Fuse verwenden können: Mounten Sie das Dateisystem des Remotecomputers mit sshfs und verwenden Sie dann normale Dateibearbeitungsbefehle.

mkdir Host.example.com
sshfs [email protected]:/ Host.example.com
cp Host.example.com/path/to/file .