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

Я не уверен, возможна ли scp папка с удаленного на локальный, но все же у меня нет других параметров. Я использую ssh для входа на мой сервер, и оттуда я хотел бы скопировать папку foo в home/user/Desktop (мой локальный). Есть ли какая-нибудь команда, чтобы я мог это сделать?

Ответ 1

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

От man scp

-r Recursively copy entire directories

Ответ 2

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

Затем, например, если у вас будет этот ~/.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 -схему на хостах <source> и <target> и правильно работать bash -completion. Для получения дополнительной информации см. Связанные вопросы:

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

Ответ 3

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

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

Скопировать текущий каталог с Удаленный на локальный

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

Справка:

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

Во-вторых, загрузка с удаленного устройства:

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

В конце извлеките файлы:

tar -xzvf backup.tar.gz

Ответ 6

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

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

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

Ответ 7

Перейдите в раздел "Файлы на панели инструментов единства"

введите описание изображения здесь

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

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

Здесь один пример

введите описание изображения здесь

Ответ 8

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

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

Ответ 9

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

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

Ответ 10

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

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

Но вот лучший способ сделать это с помощью sftp - SSH 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 или ?.

Ответ 11

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

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