Как скопировать папку с удаленного на локальный хост с помощью scp
?
Я использую, ssh
чтобы войти в свой сервер.
Затем я хотел бы скопировать удаленную папку foo
в локальную /home/user/Desktop
.
Как мне этого добиться?
Как скопировать папку с удаленного на локальный хост с помощью scp
?
Я использую, ssh
чтобы войти в свой сервер.
Затем я хотел бы скопировать удаленную папку foo
в локальную /home/user/Desktop
.
Как мне этого добиться?
Ответы:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Если вы не включите завершающий символ '/' в конце foo, вы будете перемещать сам каталог (включая содержимое), а не только содержимое каталога.
С man scp
(см. Онлайн-руководство )
-r Рекурсивно копировать целые каталоги
-C
флаг добавляет сжатие, а -c
флаг позволяет передавать другие типы шифров для повышения производительности, scp -c blowfish a@b:something .
как показано в ответе dimuthu
Desktop/foo
или у вас будет Desktop/allcontentsofFooGohere
scp, кажется, иногда ведет себя странно, он делает одно, а потом другое
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
вами должно закончиться Desktop/foo
. С scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
вами в конечном итоге с содержимым foo
в Desktop
и все подкаталоги foo
разбросаны подDesktop
Чтобы использовать все возможности 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)
Обновить:
Для включения удаленного Баш-завершения вы должны иметь Баш-оболочки на обоих <source>
и <target>
хостов, и исправную Баш-завершение. Для получения дополнительной информации см. Связанные вопросы:
Как включить автозаполнение для удаленных путей при использовании scp?
Завершение вкладки имени файла SCP
Чтобы скопировать все из локального местоположения в удаленное местоположение (загрузить)
scp -r /path/from/destination username@hostname:/path/to/destination
Чтобы скопировать все из удаленного расположения в локальное расположение (скачать)
scp -r username@hostname:/path/from/destination /path/to/destination
Пользовательский порт, где xxxx
находится пользовательский номер порта
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Копировать текущий каталог из удаленного в локальный
scp -r username@hostname:/path/from/file .
Помогите:
-r
Рекурсивно копировать все каталоги и файлы/
, Получить полное местоположение поpwd
scp
заменит все существующие файлыhostname
будет имя хоста или IP-адрес-P portnumber
Примечание. Иногда пользовательский порт не будет работать из-за того, что порт не разрешен в брандмауэре, поэтому убедитесь, что пользовательский порт разрешен в брандмауэре для входящих и исходящих соединений.
pwd
чтобы получить местоположение и использовать то же самое
То, что я всегда использую, это:
scp -r username@IP:/path/to/server/source/folder/ .
, (точка) : это значит current folder
. так что скопируйте с сервера и вставьте только здесь.
IP : может быть как IP-адрес, так 125.55.41.311
и как хост ns1.mysite.com
.
.
относится к текущему каталогу!
Лучше сначала сжать каталог на удаленном сервере:
tar czfP backup.tar.gz /path/to/catalog
Во-вторых, скачать с пульта:
scp user@your.server.example.com:/path/to/backup.tar.gz .
В конце распакуйте файлы:
tar -xzvf backup.tar.gz
-C
флагом, как scp -C a@b:bigfile .
.
И если у вас есть чертовски файлы для загрузки из удаленного местоположения, и если вы не очень заботитесь о безопасности, попробуйте изменить шифрование по умолчанию scp (Triple-DES) на что-то вроде «blowfish».
Это значительно сократит время копирования файлов.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
в смене blowfish
, но у него есть недостатки безопасности.
Типичный сценарий,
scp -r -P port username@ip:/path-to-folder .
объяснил с помощью образца,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
где,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
Вопрос был в том, как скопировать папку из удаленной в локальную с помощью scp
команды.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Но вот лучший способ сделать это sftp
- SSH File Transfer Protocol (также Secure File Transfer Protocol, или SFTP) - это сетевой протокол, который обеспечивает доступ к файлам, передачу файлов и управление файлами по любому надежному потоку данных (википедия).
$ 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
Для получения справки о sftp
команде просто введите help
или ?
.
Я не знаю почему, но мне пришлось использовать локальную папку перед директивой исходного сервера. заставить это работать
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
root@