Как копировать файлы между двумя компьютерами с помощью SSH [дубликат]

Ситуация : у меня 2 компьютера: Pc_A и Pc_B . Я также использую соединение SSH , которое идет от A к B .

Моя проблема : у меня есть папка, сохраненная на рабочем столе Pc_A , и мне нужно скопировать ее на рабочий стол Pc_B через терминал. Дело в том, что как только я открываю терминал на Pc_A и подключаюсь к Pc_B , я больше не могу передавать данные с одного компьютера на другой .. .

Вопрос : кто-нибудь знает, что делать в таком случае?


Вы можно использовать scp :

Когда вы находитесь на плате:

  scp -r ваше_имя_пользователя @ ip_address_of_PCA: /путь/к/удаленному/каталогу/пути/к/локальному/каталогу  

14

На ПК A вместо подключения к ПК B по ssh просто запустите

  rsync/path/to/local/ file username @ PCB:/path/to/remote/destination  

Вы также можете использовать scp вместо rsync с аналогичным форматированием для остальных строки, но я предпочитаю rsync, поскольку он более мощный и (я думаю) проверяет после копирования. См. man rsync для получения дополнительных сведений. N.B. что на удаленном компьютере также должен быть установлен rsync (см. комментарии neon_overload), иначе scp будет предпочтительнее.

Если установленный на обоих компьютерах, rsync будет использовать вычислительную мощность обоих. Например, он может сжимать файлы перед передачей, используя флаг -z .

Поделиться
Улучшить этот ответ
отредактировано 13 апреля ’17 в 12:37
Сообщество ♦
1
ответ дан 12 дек ’14 в 23:56
  • Дополнительная информация: это работает, потому что rsync может передавать по SSH на другие компьютеры, на которых установлен rsync: PCB: означает удаленное соединение через SSH. — thomasrutter 13 дек. ’14 в 1:30
  • @neon_overload Я думал, что установка rsync на удаленном компьютере не обязательна, но если бы это было так, то это потенциально могло бы ускорить передачу. Хотя я не могу найти ссылку. — Sparhawk, 13 дек. ’14 в 1:33
  • Стандартно для rsync быть в любой системе и доступно только с помощью команды «rsync», так что обычно он «просто работает». Он подключается через SSH, запускает rsync в удаленной системе с помощью команды «rsync», а затем процессы rsync на каждом конце связываются друг с другом через уже открытое SSH-соединение. Все это работает настолько прозрачно для пользователя, что это обманчиво просто, но вы получаете выгоду от процесса rsync на каждом конце, чтобы сравнивать размеры файлов, время модификации и вычислять контрольные суммы для сохранения передачи данных. — thomasrutter 13 дек. ’14 в 10:55
  • FWIW это говорит, что «rsync» должен быть в пути выполнения вошедшего в систему пользователя на удаленном компьютере. troy.jdmz.net/rsync — thomasrutter 13 дек. ’14 в 10:56
  • 2
    Справедливый вопрос, поэтому я просто попытался удалить rsync на удаленном компьютере и попытаться выполнить rsync с ним. Я получаю: bash: rsync: команда не найдена rsync: соединение неожиданно закрыто (получено 0 байт) [отправитель] ошибка rsync: удаленная команда не найдена (код 127) в io.c (605) [отправитель = 3.0.9] . Замена rsync на удаленной машине устранила это. — thomasrutter 13 дек. ’14 в 11:14
| показать 2 дополнительных комментария

На ПК A вместо подключения к ПК B по ssh просто запустите

  rsync/path/to/local/file username @ PCB:/path/to/remote/destination  

Вы могли также используйте scp вместо rsync с аналогичным форматированием для остальной части строки, но я предпочитаю rsync, поскольку он более мощный и (я думаю) проверяет после копирования. См. man rsync для получения дополнительных сведений. N.B. что на удаленном компьютере также должен быть установлен rsync (см. комментарии neon_overload), иначе scp будет предпочтительнее.

Если установленный на обоих компьютерах, rsync будет использовать вычислительную мощность обоих. Например, он может сжимать файлы перед передачей, используя флаг -z .

Оцените статью
Botgadget.ru
Добавить комментарий