2015-03-05 4 views
23

In meiner Terminal-Shell ssh'ed ich in einen Remote-Server und ich cd in das Verzeichnis, das ich möchte. In diesem Verzeichnis befindet sich jetzt eine Datei mit dem Namen table, die ich auf meinen lokalen Computer kopieren möchte: /home/me/Desktop. Wie kann ich das machen?Wie kopiert man eine Datei vom Remote-Server auf den lokalen Rechner?

Ich versuchte scp table /home/me/Desktop, aber es gab einen Fehler über keine solche Datei oder Verzeichnis. Weiß jemand, wie man das macht?

Dank

Antwort

2

Wenn Sie scp Sie den Host-Namen und IP-Adresse zu sagen haben, von wo aus Sie die Datei kopieren möchten. Zum Beispiel, wenn Sie auf dem Remote-Host sind und Sie die Datei auf Ihren PC übertragen Sie so etwas wie diese verwenden:

scp -P[portnumber] myfile_at_remote_host [user]@[your_ip_address]:/your/path/ 

Beispiel:

scp -P22 Tabelle [email protected] 111,11:/home/me/Desktop/

auf der anderen Seite, wenn Sie an Ihrem sind tatsächlich auf Ihrem Computer können Sie so etwas wie folgt verwenden:

scp -P[portnumber] [remote_login]@[remote's_ip_address]:/remote/path/myfile_at_remote_host /your/path/ 

Beispiel:

scp -P22 [fake_user] @ 222.222.222.222:/remote/path/table/home/me/Desktop/

40

Zum Beispiel ist Ihr Remote-Host example.com und Remote-Login Name ist Benutzer1:

scp [email protected]:/path/to/file /path/to/store/file 
+4

Dies sollte die akzeptierte Antwort sein. –

+1

Was passiert, wenn ich auf dem Server bin? –

+0

Wie wäre es mit 'scp/Pfad/zu/local/Datei user1 @ otherhost:/Pfad/zu/Datei' – kkpoon

4

Die scp-Operation ist getrennt von Ihrem ssh-Login. Sie müssen einen ssh-Befehl ähnlich die folgenden einen zur Ausgabe von jdoe unter der Annahme Konto, mit dem Sie in das Remote-System anmelden und dass das Remote-System ist example.com:

scp [email protected]:/somedir/table /home/me/Desktop/. 

Der scp Befehl aus dem System ausgegeben werden, wenn Auf/home/me/Desktop resides folgt die Benutzer-ID für das Konto auf dem Remote-Server. Sie fügen dann ein ":" hinzu, gefolgt von dem Verzeichnispfad und dem Dateinamen auf dem Remote-Server, z. B./somedir/table. Fügen Sie dann ein Leerzeichen und den Speicherort hinzu, an den Sie die Datei kopieren möchten. Wenn die Datei denselben Namen auf dem Client-System haben soll, können Sie dies mit einem Punkt angeben, z. B. "." am Ende des Verzeichnispfads; Wenn Sie einen anderen Namen wünschen, können Sie stattdessen/home/me/Desktop/newname verwenden. Wenn Sie einen nicht standardmäßigen Port für SSH-Verbindungen verwenden, müssen Sie diesen Port mit einem "-P n" (Großbuchstabe P) angeben, wobei "n" für die Portnummer steht. Der Standardport ist 22 und wenn Sie ihn nicht für die SSH-Verbindung angeben, brauchen Sie das nicht.

1

würde ich empfehlen, SFTP zu verwenden, verwenden Sie diesen Befehl sftp -oPort=7777 [email protected] wo -oPort benutzerdefinierte Portnummer von ssh ist, für den Fall, wenn u es auf 7777 geändert, dann kann u -oPort verwenden, sonst, wenn die Verwendung nur Port 22 dann schlicht sftp [email protected] die nach dem Passwort fragt, dann können Sie sich anmelden, und Sie können mit cd /home/user zum gewünschten Ort navigieren, dann können Sie einen einfachen Befehl get table herunterladen, Wenn Sie ein Verzeichnis/Ordner herunterladen möchten get -r someDirectory wird es tun. Wenn Sie möchten, dass die Dateiberechtigungen auch existieren, dann get -Pr someDirectory. Zum Hochladen auf Remote-Änderung erhalten Sie oben genannten Befehle.