Як завантажити файл з командного рядка? через ssh?


21

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

Примітка: віддаленим сервером є Ubuntu, локальним є Mac OS X

Відповіді:


29

Використовуйте- scpcommand, він працює поверх 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

Ви також можете провести маршрутизацію через localhost за допомогою -3прапора: scp -3 jeff@firsthost.com:/files/file1.zip brad@secondhost.com:/archivesЦе корисно, якщо вам потрібно використовувати приватний ключ для доступу до обох серверів, які знаходяться лише на localhost: scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/Панель ходу відключена для -3
Dan Sandland

3

Ви також можете використовувати rsyncдля цього. Він може працювати над SSH.


rsync -avvPє моїм улюбленим для файлів та / або папок, але є один недолік: його потрібно встановити на віддаленій машині.
joeytwiddle

Якщо у вас виникають проблеми з підключенням, вам може знадобитися передати, -e sshщоб сказати rsync підключитися через ssh.
joeytwiddle

3

Для цього я використовую SFTP. Це командний рядок і використовує ту ж безпеку, що і SSH.


1

Якщо ви не можете використовувати scpабо SFTP, ви можете використовувати tarSSH:

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

Цей також хороший, якщо у вас є розріджені файли, які інакше "вибухнуть".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.