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

SCP рекурсивно


Безопасное копирование или SCP — это утилита командной строки, которая позволяет пользователям безопасно передавать файлы и каталоги с одного компьютера на другой по протоколу SSH.

SCP удобен, поскольку он прост в использовании. Некоторые особенности использования SCP для передачи файлов через удаленные хосты включают в себя:

  • Передача файлов и каталогов осуществляется через SSH, что повышает безопасность.

  • Он поддерживает двунаправленное копирование. т. е. может передавать файлы и каталоги на удаленный хост и с него.

  • Он является частью пакета OpenSSH и поэтому не требует установки отдельного пакета.

В этом уроке мы рассмотрим, как рекурсивно копировать файлы и каталоги с помощью SCP. Использование SCP ускорит передачу файлов и каталогов.

SCP базовый

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

Общий синтаксис команды SCP:

scp [OPTION] user@src_ip:src_filename user@dst_ip:dst_filename

Начнем с вызова команды SCP.

  • Затем мы указываем параметры, которые позволяют нам изменить основное поведение команды. Поддерживаемые параметры включают настраиваемый порт SSH, рекурсивное копирование, файл идентификации и т. д.

  • Далее мы устанавливаем имя исходного файла.

  • Наконец, мы устанавливаем имя файла назначения.

ПРИМЕЧАНИЕ. Обязательно задайте имя пользователя и хост для удаленных файлов.

Пример 1. Копирование удаленного файла в локальный

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

Прежде чем мы начнем:

  • Убедитесь, что у вас есть SSH-доступ к удаленному хосту (используйте ключ SSH или пароль).

  • Убедитесь, что у вас есть разрешение на чтение файла и каталогов, необходимых для копирования и записи в целевой системе.

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

Например, у меня есть резервная копия файла .zst (узнайте, как использовать zst) на удаленном сервере CentOS, и мне нужно загрузить ее на локальную машину с Fedora. В этом случае я могу сделать:

scp centos@192.168.0.20:/home/centos/Downloads/backup.zst /home/fedora/Downloads

Как только я выполню указанную выше команду, SCP запросит у меня пароль SSH для доступа к серверу CentOS и загрузит файл backup.zst в мою локальную папку загрузок.

Пример 2. Копирование локального файла на удаленный хост

Точно так же я могу передать локальный файл на удаленный хост с помощью SCP.

Например, чтобы передать файл с именем backup.zip с моей машины Fedora на мой сервер CentOS, я могу сделать следующее:

scp /home/fedora/Documents/backup.zip centos@192.168.0.20:/home/centos/Documents

В этом случае мы копируем файл backup.zip из папки «Мои документы» в папку «Документы» на моем компьютере с CentOS.

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

Пример 3 — SCP на нестандартном порту

Если вы используете SSH на порту, отличном от порта по умолчанию (22), вы можете указать порт, используя флаг -P.

Чтобы узнать, как найти порт, на котором работает SSH, перейдите по ссылке ниже:

https://linux-console.net/find-running-ssh-port/
Предположим, SSH работает на порту 3090, я могу использовать команду:

scp -P 3090 backup.zst centos@192.168.0.20 :/home/centos/Downloads/

При этом файл копируется на удаленный хост, но с использованием SSH-порта, отличного от используемого по умолчанию.

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

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

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

sudo scp -r root@192.168.0.20:/var/log /logs

Вы заметите, что я использовал учетную запись root для своего сервера CentOS. Это связано с тем, что доступ к каталогу /var/log разрешен только пользователю root.

После завершения все файлы и каталоги внутри каталога /var/log будут перенесены в каталог /logs на моем локальном компьютере.

Заключение

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

Спасибо за чтение и снаряды везде!

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