Как использовать 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 требуется аналогичный синтаксис. Разница, как я уже говорил ранее, заключается в том, что в конце команды нужно указать путь для сохранения каталога.
Это связано с тем, что команда scp максимально похожа на команду cp Linux.
В следующем примере каталог с именем localdir, расположенный в текущем каталоге, копируется в расположение по умолчанию на удаленном хосте, домашний каталог пользователя kali. По умолчанию, если вы не укажете исправление после двоеточия, путь по умолчанию для копируемых файлов — это домашний каталог пользователя, которого вы аутентифицировали.
После вызова SCP добавьте флаг -r, чтобы указать, что вы передаете каталог, а не обычный файл. Затем укажите каталог, который вы хотите отправить, а затем
Как вы можете видеть на следующем снимке экрана, сделанном с удаленного хоста, каталог был скопирован рекурсивно:
Скачивание и отправка обычных файлов с помощью scp
Как было сказано ранее, загрузка и загрузка обычных файлов почти такие же, как и с каталогами, за исключением отсутствия флага -r, в котором нет необходимости.
Чтобы загрузить файл, используйте следующий синтаксис:
Поэтому, чтобы загрузить файл с именем linux-consolefile в удаленный каталог по умолчанию, известный как домашний каталог пользователя kali, я запускаю следующую команду:
Синтаксис загрузки файла следующий:
В следующем примере показано, как загрузить файл с именем linux-consolefile, сохранить его в домашнем каталоге удаленного пользователя с именем kali и сохранить его в каталоге Загрузки локального пользователя.
Как видно, файл был передан правильно.
Загрузка и загрузка файлов и каталогов с помощью sftp
Загрузка и выгрузка файлов и каталогов с помощью SFTP может быть такой же простой, как и с SCP.
Следующий метод показывает, как загрузить файл, расположенный в удаленном подкаталоге с именем dir. Файл будет сохранен локально в каталоге /tmp/linux-console2 .
Загрузка каталогов - тот же процесс. В приведенном ниже примере показано, как загрузить каталог dir в текущее местоположение, указанное точкой:
Загрузка каталогов не так проста, как с SCP, и синтаксис меняется. Это связано с тем, что вам необходимо подключиться к SFTP-серверу и выполнить команду put, чтобы загрузить файл.
В приведенном ниже примере файл с именем linux-consolefile загружается в подкаталог dir на удаленном хосте:
Загрузка каталогов также требует реализации флага -r для рекурсивного переноса. Однако при загрузке флаг -r должен быть помещен после команды put, как показано в примере. ниже, в котором каталог linux-consoledir загружается в удаленный подкаталог с именем dir.
Как видите, каталог был успешно загружен. Вот как вы можете загружать и загружать файлы и каталоги в Linux, используя команды scp или более рекомендуемые команды sftp.
Заключение
Как видите, удаленное копирование каталогов в Linux с помощью команды scp довольно просто. Команда scp считается наиболее удобным для пользователя методом передачи файлов между устройствами, и когда-то она считалась безопасной, как следует из ее названия — Протокол защищенного копирования. В настоящее время команда scp устарела из-за уязвимостей и не должна заменять более безопасные альтернативы, такие как SFTP и RSYNC. Команду sftp также можно использовать в интерактивном режиме, что не было объяснено в этом руководстве, но вы можете прочитать об этом на странице https://linux-console.net/sftp_linux_command_line/. Все системы, поддерживающие SCP, должны поддерживать SFTP, поэтому доступность не должна быть проблемой. В будущих руководствах будет объяснена альтернатива RSYNC, поэтому продолжайте следить за этим блогом, чтобы получать дополнительные советы и руководства по Linux.
Спасибо, что прочитали этот учебник по SCP, надеюсь, он был вам полезен.