Поиск по сайту:

Как использовать SCP для передачи каталога в Linux?


В этом руководстве объясняется, как легко перенести каталоги с помощью команды Linux scp (Secure Copy Protocol).

Несмотря на то, что команда scp в Linux объявлена устаревшей и заменена SFTP и RSYNC, ее использование широко распространено. Даже после того, как он устарел и был заменен, вероятно, SCP является наиболее распространенным методом передачи файлов. Тем не менее, его использование не рекомендуется профессионально. Вот почему после инструкций scp по загрузке и загрузке каталогов я добавил инструкции, чтобы сделать то же самое с помощью команды sftp.

Загрузка и загрузка каталогов с помощью scp

Загрузка или выборка каталогов с помощью scp аналогична загрузке или загрузке обычных файлов. Единственное отличие — это флаг -r, который необходимо добавить для рекурсивной передачи каталогов.

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

  • Имя пользователя, используемое для входа на удаленное устройство, — kali.

  • Удаленный IP-адрес: 168.1.100.

  • Каталог для загрузки называется linux-consoledir.

Вам нужно будет заменить имя пользователя, IP-адрес и имена каталогов в соответствии с вашим сценарием.

В приведенном ниже примере вызывается команда scp с флагом -r (рекурсивный), чтобы указать, что мы хотим загрузить каталог, а не обычный файл. За командой scp и флагом -r следует имя пользователя@IP/хост. Затем следует двоеточие и путь к каталогу, который вы хотите загрузить. Независимо от того, что вы хотите загрузить или загрузить в каталог, место, где вы хотите сохранить каталог или обычный файл, всегда указывается в конце команды. В этом случае каталог linux-consoledir будет храниться в каталоге /root.

Синтаксис:

scp -r <Username>@<IP/Host>:<RemotePathToDir> <LocalPathToStore>

В моем случае:

scp -r kali@192.168.1.100:linux-consoledir/ /root/

Примечание. Файлы и каталоги, используемые в этом руководстве, пусты.

Как видите, файл был передан правильно.

Для загрузки каталога с помощью SCP требуется аналогичный синтаксис. Разница, как я уже говорил ранее, заключается в том, что в конце команды нужно указать путь для сохранения каталога.

Это связано с тем, что команда scp максимально похожа на команду cp Linux.

В следующем примере каталог с именем localdir, расположенный в текущем каталоге, копируется в расположение по умолчанию на удаленном хосте, домашний каталог пользователя kali. По умолчанию, если вы не укажете исправление после двоеточия, путь по умолчанию для копируемых файлов — это домашний каталог пользователя, которого вы аутентифицировали.

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

scp -r localdir kali@192.168.1.100:

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

Скачивание и отправка обычных файлов с помощью scp

Как было сказано ранее, загрузка и загрузка обычных файлов почти такие же, как и с каталогами, за исключением отсутствия флага -r, в котором нет необходимости.

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

scp <FileName> <Username>@<IP/Host>:<RemotePathToDir>

Поэтому, чтобы загрузить файл с именем linux-consolefile в удаленный каталог по умолчанию, известный как домашний каталог пользователя kali, я запускаю следующую команду:

scp linux-consolefile kali@192.168.1.100:

Синтаксис загрузки файла следующий:

scp <Username>@<IP/Host>:<RemotePathToFile> <LocalPathToStore>

В следующем примере показано, как загрузить файл с именем linux-consolefile, сохранить его в домашнем каталоге удаленного пользователя с именем kali и сохранить его в каталоге Загрузки локального пользователя.

scp kali@192.168.1.100:linux-consolefile ~/Downloads

Как видно, файл был передан правильно.

Загрузка и загрузка файлов и каталогов с помощью sftp

Загрузка и выгрузка файлов и каталогов с помощью SFTP может быть такой же простой, как и с SCP.

Следующий метод показывает, как загрузить файл, расположенный в удаленном подкаталоге с именем dir. Файл будет сохранен локально в каталоге /tmp/linux-console2 .

sftp kali@192.168.1.107:dir/file /tmp/linux-console2

Загрузка каталогов - тот же процесс. В приведенном ниже примере показано, как загрузить каталог dir в текущее местоположение, указанное точкой:

sftp -r kali@192.168.1.107:dir/ .

Загрузка каталогов не так проста, как с SCP, и синтаксис меняется. Это связано с тем, что вам необходимо подключиться к SFTP-серверу и выполнить команду put, чтобы загрузить файл.

В приведенном ниже примере файл с именем linux-consolefile загружается в подкаталог dir на удаленном хосте:

sftp kali@192.168.1.107:dir <<< $'put linux-consolefile'

Загрузка каталогов также требует реализации флага -r для рекурсивного переноса. Однако при загрузке флаг -r должен быть помещен после команды put, как показано в примере. ниже, в котором каталог linux-consoledir загружается в удаленный подкаталог с именем dir.

sftp kali@192.168.1.107:dir <<< $'put -r linux-consoledir'

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

Заключение

Как видите, удаленное копирование каталогов в Linux с помощью команды scp довольно просто. Команда scp считается наиболее удобным для пользователя методом передачи файлов между устройствами, и когда-то она считалась безопасной, как следует из ее названия — Протокол защищенного копирования. В настоящее время команда scp устарела из-за уязвимостей и не должна заменять более безопасные альтернативы, такие как SFTP и RSYNC. Команду sftp также можно использовать в интерактивном режиме, что не было объяснено в этом руководстве, но вы можете прочитать об этом на странице https://linux-console.net/sftp_linux_command_line/. Все системы, поддерживающие SCP, должны поддерживать SFTP, поэтому доступность не должна быть проблемой. В будущих руководствах будет объяснена альтернатива RSYNC, поэтому продолжайте следить за этим блогом, чтобы получать дополнительные советы и руководства по Linux.

Спасибо, что прочитали этот учебник по SCP, надеюсь, он был вам полезен.

Статьи по данной тематике: