web-dev-qa-db-de.com

Wie kopiere ich einen Ordner mit scp von Remote nach Local?

Wie kopiere ich einen Ordner mit scp von einem entfernten auf einen lokalen Host?

Ich benutze ssh, um mich auf meinem Server anzumelden.
Dann möchte ich den Remote-Ordner foo nach local /home/user/Desktop kopieren.

Wie kann man das erreichen?

2473
Slasengger
scp -r [email protected]:/path/to/foo /home/user/Desktop/

From man scp (Siehe Online-Handbuch )

-r Kopiert rekursiv ganze Verzeichnisse

4549
Gryphius

Um die volle Leistung von scp nutzen zu können, müssen Sie die folgenden Schritte ausführen:

  1. Autorisierung öffentlicher Schlüssel
  2. Erstellt ssh-Aliase

Dann, zum Beispiel, wenn Sie diese ~/.ssh/config haben:

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

sie sparen sich die Passworteingabe und vereinfachen die scp -Syntax wie folgt:

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

Darüber hinaus können Sie die Remote-Pfadvervollständigung verwenden:

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

Update:

Um die Remote-Bash-Vervollständigung zu aktivieren, muss die Bash-Shell auf beiden Hosts <source> und <target> installiert sein und die Bash-Vervollständigung ordnungsgemäß funktionieren. Weitere Informationen finden Sie unter verwandte Fragen:

So aktivieren Sie die automatische Vervollständigung für Remote-Pfade bei Verwendung von scp?
Vervollständigung des SCP-Dateinamens

287

So kopieren Sie alle Dateien von lokaler Speicherort nach entfernter Speicherort (Hochladen)

scp -r /path/from/destination [email protected]:/path/to/destination

So kopieren Sie alle Dateien von Remote Location nach Local Location (Download)

scp -r [email protected]:/path/from/destination /path/to/destination

Benutzerdefinierter Port, wobei xxxxbenutzerdefinierter Port Zahl ist

 scp -r -P xxxx [email protected]:/path/from/destination /path/to/destination

Kopieren Sie im aktuellen Verzeichnis von Remote nach Local

scp -r [email protected]:/path/from/file .

Hilfe:

  1. -r Kopieren Sie rekursiv alle Verzeichnisse und Dateien
  2. Verwenden Sie immer die vollständige Position von /. Ermitteln Sie die vollständige Position durch pwd.
  3. scp ersetzt alle vorhandenen Dateien
  4. hostname ist der Hostname oder die IP-Adresse
  5. wenn ein benutzerdefinierter Port benötigt wird (neben Port 22), benutze -P portnumber
  6. . (Punkt) - bedeutet aktuelles Arbeitsverzeichnis, also nur hier herunterladen/vom Server kopieren und einfügen.

Hinweis: Manchmal funktioniert der benutzerdefinierte Port nicht, da der Port in der Firewall nicht zulässig ist. Stellen Sie daher sicher, dass in der Firewall der benutzerdefinierte Port für eingehende und ausgehende Verbindungen zulässig ist

190
Shiv Singh

Was ich immer benutze ist:

scp -r [email protected]:/path/to/server/source/folder/  .

. (Punkt): es bedeutet current folder. Also kopiere vom Server und füge nur hier ein.

IP: kann eine IP-Adresse wie 125.55.41.311 oder ein Host wie ns1.mysite.com sein.

47

Es ist besser, den Katalog zuerst auf dem Remote-Server zu komprimieren:

tar czfP backup.tar.gz /path/to/catalog

Zweitens, Download von Remote:

scp [email protected]:/path/to/backup.tar.gz .

Am Ende extrahieren Sie die Dateien:

tar -xzvf backup.tar.gz
28
justi

Und wenn Sie verdammt viele Dateien vom Remote-Standort herunterladen müssen und die Sicherheit nicht so wichtig ist, ändern Sie die SCP-Standardverschlüsselung (Triple-DES) in "Blowfish".

Dadurch wird die Kopierzeit für Dateien drastisch reduziert.

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
21
dimuthu

Gehen Sie auf der Symbolleiste von Unity zu Files

enter image description here

Drücken Sie Strg + l und schreiben Sie [email protected].168.10.123

Der 192.168.1.103 ist der Host, mit dem Sie eine Verbindung herstellen möchten.

Das hier ein Beispiel

enter image description here

19
Ronald

Typisches Szenario

scp -r -P port [email protected]:/path-to-folder  .

erklärt mit einer Probe,

scp -r -P 27000 [email protected]:/tmp/hotel_dump .

wo,

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
18
Arun G

Falls Sie auf "Zu viele Authentifizierungsfehler" stoßen, geben Sie den genauen SSH-Schlüssel an, den Sie Ihrem Server hinzugefügt haben:

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
12
kaiser

Die Frage war, wie man einen Ordner mit dem Befehl scp von remote nach local kopiert.

$ scp -r [email protected]:/path/remoteDir /path/localDir

Aber hier ist der bessere Weg, dies mit sftp zu tun - SSH File Transfer Protocol (auch Secure File Transfer Protocol oder SFTP) ist ein Netzwerkprotokoll, das Dateizugriff, Dateiübertragung und Dateiverwaltung über jeden zuverlässigen Datenstrom ermöglicht (Wikipedia).

$ sftp [email protected]_ip

sftp> cd /path/to/remoteDir

sftp> get -r remoteDir

Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00

Um Hilfe zum Befehl sftp zu erhalten, geben Sie einfach help oder ? ein.

10
Fulvio

Ich weiß nicht warum, aber ich musste den lokalen Ordner vor der Quellserver-Direktive verwenden. damit es funktioniert

scp -r . [email protected]:/usr/share/nginx/www/example.org/
5
Salem