Wie kopiere ich einen Ordner von einem Remote-Host auf einen lokalen Host scp
?
Ich ssh
melde mich auf meinem Server an.
Dann möchte ich den Remote-Ordner foo
in den lokalen kopieren /home/user/Desktop
.
Wie erreiche ich das?
Wie kopiere ich einen Ordner von einem Remote-Host auf einen lokalen Host scp
?
Ich ssh
melde mich auf meinem Server an.
Dann möchte ich den Remote-Ordner foo
in den lokalen kopieren /home/user/Desktop
.
Wie erreiche ich das?
Antworten:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Wenn Sie das abschließende '/' am Ende von foo nicht einfügen, verschieben Sie das Verzeichnis selbst (einschließlich des Inhalts) und nicht nur den Inhalt des Verzeichnisses.
Von man scp
(Siehe Online-Handbuch )
-r Kopiert rekursiv ganze Verzeichnisse
-C
Flag fügt Komprimierung hinzu und das -c
Flag ermöglicht es Ihnen, andere Verschlüsselungstypen für eine bessere Leistung zu übergeben, wie scp -c blowfish a@b:something .
in Dimuthus Antwort zu sehen
Desktop/foo
oder wirst du Desktop/allcontentsofFooGohere
scp haben, scheint mir manchmal komisch zu sein, es macht eine Sache dann eine andere
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
dir sollte am Ende mit Desktop/foo
. Mit werden scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
Sie mit dem Inhalt von foo
in Desktop
und allen Unterverzeichnissen von foo
unterDesktop
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)
Aktualisieren:
Remote - bash-completion Zur Aktivierung benötigen Sie bash-Shell auf beide haben <source>
und <target>
Hosts und ordnungsgemäß funktioniert bash-completion. Weitere Informationen finden Sie unter verwandten Fragen:
Wie aktiviere ich die automatische Vervollständigung für Remote-Pfade bei Verwendung von scp?
Vervollständigung der Registerkarte "SCP-Dateiname"
So kopieren Sie alles vom lokalen Standort zum Remote-Standort (Upload)
scp -r /path/from/destination username@hostname:/path/to/destination
So kopieren Sie alles vom Remote-Standort zum lokalen Standort (Download)
scp -r username@hostname:/path/from/destination /path/to/destination
Benutzerdefinierter Port Wo xxxx
ist die benutzerdefinierte Portnummer ?
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Kopieren Sie in das aktuelle Verzeichnis von Remote nach Local
scp -r username@hostname:/path/from/file .
Hilfe:
-r
Kopieren Sie rekursiv alle Verzeichnisse und Dateien/
, Holen Sie sich den vollständigen Standort vonpwd
scp
ersetzt alle vorhandenen Dateienhostname
wird Hostname oder IP-Adresse sein-P portnumber
Hinweis: Manchmal funktioniert der benutzerdefinierte Port nicht, da der Port in der Firewall nicht zulässig ist. Stellen Sie daher sicher, dass der benutzerdefinierte Port in der Firewall für eingehende und ausgehende Verbindungen zulässig ist
pwd
, um Standort zu erhalten und zu verwenden
Was ich immer benutze ist:
scp -r username@IP:/path/to/server/source/folder/ .
. (Punkt) : es bedeutet current folder
. Also vom Server kopieren und nur hier einfügen.
IP : Kann eine IP-Adresse wie 125.55.41.311
oder eine Host- Adresse sein ns1.mysite.com
.
.
sich auf das aktuelle Verzeichnis bezieht!
Es ist besser, zuerst den Katalog auf dem Remote-Server zu komprimieren:
tar czfP backup.tar.gz /path/to/catalog
Zweitens von der Fernbedienung herunterladen:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Extrahieren Sie am Ende die Dateien:
tar -xzvf backup.tar.gz
-C
Flag komprimieren , wie z scp -C a@b:bigfile .
.
Und wenn Sie eine verdammt große Datei vom Remote-Speicherort herunterladen müssen und die Sicherheit nicht besonders 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 user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
anstelle von blowfish
, aber es hat Sicherheitslücken.
Typisches Szenario,
scp -r -P port username@ip:/path-to-folder .
mit einem Beispiel erklärt,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
wo,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
Die Frage war, wie man einen Ordner mit dem scp
Befehl von remote nach local kopiert .
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Dies ist jedoch der bessere Weg sftp
: 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 bietet (Wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Für Hilfe zum sftp
Befehl geben Sie einfach help
oder ein ?
.
Ich weiß nicht warum, aber ich musste vor der Quellserver-Direktive den lokalen Ordner verwenden. damit es funktioniert
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
root@