it-roy-ru.com

Как скопировать папку с удаленного на локальный с помощью scp?

Как скопировать папку с удаленного на локальный хост, используя scp?

Я использую ssh для входа на мой сервер.
Затем я хотел бы скопировать удаленную папку foo в локальный /home/user/Desktop.

Как этого добиться?

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

От man scp (см. электронное руководство )

-r Рекурсивно копировать целые каталоги

4407
Gryphius

Чтобы использовать все возможности scp , вам необходимо выполнить следующие шаги:

  1. Авторизация открытого ключа
  2. Создать псевдонимы ssh

Тогда, например, если у вас есть это ~/.ssh/config :

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

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

вы избавите себя от ввода пароля и упростите scp синтаксис следующим образом:

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

Более того, вы сможете использовать удаленное завершение пути:

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

Update:

Для включения удаленного завершения bash вам необходимо иметь bash-Shell на хостах <source> и <target> и правильно работающее bash-завершение. Для получения дополнительной информации см. Связанные вопросы:

Как включить автозаполнение для удаленных путей при использовании scp?
завершение вкладки имени файла SCP

279
Alexander Yancharuk

Чтобы скопировать все из локальное местоположение в удаленное местоположение (загрузить)

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

Чтобы скопировать все из Удаленное расположение в Локальное расположение (Загрузить)

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

Пользовательский порт, где xxxx --- пользовательский порт номер

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

Копировать в текущий каталог из Remote to Local

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

Help:

  1. -r Рекурсивно копировать все каталоги и файлы
  2. Всегда использовать полное местоположение из /, Получить полное местоположение по pwd
  3. scp заменит все существующие файлы
  4. hostname будет именем хоста или IP-адресом
  5. если нужен специальный порт (кроме порта 22), используйте -P portnumber
  6. . (точка) - это означает текущий рабочий каталог, поэтому скачивайте/копируйте с сервера и вставляйте только здесь.

Примечание: Иногда пользовательский порт не будет работать из-за того, что порт не разрешен в брандмауэре, поэтому убедитесь, что пользовательский порт разрешен в брандмауэре для входящих и исходящих соединений.

178
Shiv Singh

То, что я всегда использую, это:

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

. (точка): это означает current folder. так что скопируйте с сервера и вставьте только здесь.

IP: может быть IP-адресом, например 125.55.41.311, или хостом, например ns1.mysite.com.

46
Manish Shrivastava

Лучше сначала сжать каталог на удаленном сервере:

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

Во-вторых, скачать с пульта:

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

В конце распакуйте файлы:

tar -xzvf backup.tar.gz
28
justi

И если у вас есть чертовски файлы для загрузки из удаленного местоположения, и если вы не очень заботитесь о безопасности, попробуйте изменить шифрование по умолчанию scp (Triple-DES) на что-то вроде "blowfish".

Это значительно сократит время копирования файлов.

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

Перейти к файлам на панели инструментов единства

enter image description here

Нажмите Ctrl + l и напишите здесь[email protected]

192.168.1.103 - это хост, к которому вы хотите подключиться.

Вот один пример

enter image description here

19
Ronald

Типичный сценарий,

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

объяснил с образцом,

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

где,

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

В случае, если вы столкнулись с "Слишком много ошибок аутентификации", укажите точный ключ SSH, который вы добавили на сервер ssh:

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

Вопрос был в том, как скопировать папку из удаленной в локальную с помощью команды scp.

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

Но вот лучший способ сделать это с sftp - SSH File Transfer Protocol (также Secure File Transfer Protocol, или SFTP) - это сетевой протокол, который обеспечивает доступ к файлам, передачу файлов и управление файлами через любой надежный поток данных. (Википедия) ,.

$ 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

Для получения справки о команде sftp просто введите help или ?.

10
Fulvio

Я не знаю почему, но мне пришлось использовать локальную папку перед директивой исходного сервера. заставить это работать

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