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?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
From man scp
(Siehe Online-Handbuch )
-r Kopiert rekursiv ganze Verzeichnisse
Um die volle Leistung von scp nutzen zu können, müssen Sie die folgenden Schritte ausführen:
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
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 xxxx
benutzerdefinierter 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:
-r
Kopieren Sie rekursiv alle Verzeichnisse und Dateien/
. Ermitteln Sie die vollständige Position durch pwd
.scp
ersetzt alle vorhandenen Dateienhostname
ist der Hostname oder die IP-Adresse-P portnumber
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
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.
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
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/
Gehen Sie auf der Symbolleiste von Unity zu Files
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
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
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
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.
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/