Как скачать файл из командной строки? через ssh?

21

Я хочу загрузить файлы с удаленного сервера на свой локальный диск и сделать это из командной строки. Я также хочу иметь возможность делать это через SSH. Как я могу это сделать?

Примечание: удаленный сервер - Ubuntu, локальный - Mac OS X

Эндрю
источник

Ответы:

29

Используйте scp-команду, она работает поверх SSH. Пример:

scp username@remote.host:/path/to/file localfile

Это также работает в другую сторону

scp localfile username@host:/path/remotefile

Имя пользователя, путь и имя файла могут быть опущены (но не :!).

Как сказал Иэн, SFTP также работает, но я склоняюсь к scpего cpиспользованию.

Ахе
источник
Менее часто, я уверен, и поправьте меня, если я ошибаюсь, но я думаю, что scp также работает удаленно, если вам действительно нужно: scp username@remote1:/path/to/file username@remote2:/path/to/file
JMD
вы можете скопировать каталоги?
Андрей
разобрался ... -r тоже рекурсивно копирует каталоги
Андрей
Я рекомендую добавить -pопцию при копировании файлов или папок с помощью scp. Он также копирует атрибуты файла (временные метки и флаги). Я нахожу, что хочу -pчаще, чем не хочу!
Joeytwiddle
Вы также можете удаленно удаленно маршрутизировать через локальный хост, используя -3флаг: scp -3 jeff@firsthost.com:/files/file1.zip brad@secondhost.com:/archivesЭто полезно, если вам нужно использовать закрытый ключ для доступа к обоим серверам, найденным только на локальном хосте: scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/индикатор выполнения отключен для -3
Дэн Сандленд
3

Вы также можете использовать rsyncдля этого. Может работать над SSH.

osgx
источник
rsync -avvPмой любимый файл и / или папки, но есть один недостаток: его нужно установить на удаленной машине.
Joeytwiddle
Если у вас возникли проблемы с подключением, вам может потребоваться передать -e sshкоманду rsync для подключения через ssh.
Joeytwiddle
3

Я использую SFTP для этого. Это командная строка и использует ту же безопасность, что и SSH.

Iain
источник
1

Если вы не можете использовать scpили SFTP, вы можете использовать tarповерх SSH:

tar cf - . | ssh otherhost "cd /mydir; tar xvf -"

Это также хорошо, если у вас есть редкие файлы, которые в противном случае «взорвутся».

Джимми Хедман
источник