Как передавать файлы в Linux с помощью SCP и Rsync

В этом руководстве мы объясним, как использовать SCP (Secure Copy) и Rsync, две команды, которые можно использовать для передачи файлов между двумя машинами.

Например, мы можем скопировать файл или каталог с локальной системы на удаленную или с удаленной на локальную.

При использовании scp для передачи файлов все зашифровано, поэтому конфиденциальные данные не раскрываются.


В этом руководстве мы приводим примеры использования scp и rsync команды для передачи файлов.



SCP (безопасная копия)

scp копирует файлы между хостами в сети.


Он использует ssh (1) для передачи данных, использует ту же аутентификацию и обеспечивает ту же безопасность, что и ssh (1).

scp команда полагается на ssh для передачи данных, поэтому для аутентификации в удаленных системах требуется ключ ssh или пароль.

Вы можете узнать больше о том, как настроить ssh-ключи.

Общий синтаксис и использование scp является:


scp [OPTION] [user@]local:]file1 [user@]remote:]file2

scp предоставляет ряд опций, которые объяснил более подробно .

Передача файлов с локального на удаленный с помощью SCP

Чтобы скопировать или передать файл с локального компьютера на удаленный, выполните следующую команду:

scp image.png remote_username@10.10.0.1:/remote/directory

Где:

  • image.png это имя файла, который мы хотим передать с локального на удаленный,
  • remote_username пользователь на удаленном сервере,
  • 10.10.0.1 это IP-адрес сервера,
  • / удаленный / каталог - это путь к каталогу, в который мы хотим скопировать файл.

Примечание: Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.


Когда вы нажмете Enter, вам будет предложено ввести пароль удаленного пользователя, и начнется передача.

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

Например:

scp image1.png remote_username@10.10.0.1:/remote/directory/new_image.png

Передача файлов с удаленного на локальный с помощью SCP

Чтобы передать файл с удаленного компьютера на локальный, выполните следующую команду:


scp remote_username@10.10.0.1:/remote/directory/new_image.png /local/directory

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

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

scp -rp sourcedirectory user@dest:/path

NB: это создает каталог источников внутри / path, поэтому файлы будут в / path / sourcedirectory.



Rsync

Как scp, rsync используется для копирования файлов либо на удаленный хост, либо с него, либо локально на текущем хосте.

rsync обычно используется для передачи больших файлов.


Передача файла с локального на удаленный с помощью Rsync

Чтобы скопировать файл с локального компьютера на удаленный с помощью rsynch, выполните следующую команду

rsync -ave ssh mydirectory remote_user@10.10.0.2:/remote/directory/

Заключение

В этом руководстве вы узнали, как использовать scp и rsync команда для копирования файлов и каталогов между двумя машинами.