Как использовать команду SCP
В Linux копирование файлов в локальной системе выполняется командой cp. Когда дело доходит до копирования файлов через удаленные системы, лучше всего подходит команда scp. Команда scp использует протокол SSH для копирования файлов между двумя местоположениями.
В этом руководстве вы узнаете, как использовать команду scp в Linux.
Команда SCP в Linux
Команда scp предустановлена во всех дистрибутивах Linux. Установка дополнительных пакетов не требуется.
Для работы с scp требуется, чтобы SSH был установлен как на локальной, так и на удаленной машинах. Сам инструмент scp в своей основе использует SSH. Это отражено во всем использовании scp. Синтаксис и использование очень похожи на работу с SSH. Если у вас есть опыт работы с SSH, вам будет проще понять scp. Вот краткое руководство по использованию SSH.
Подобно SSH, команда scp подключается к определенной учетной записи пользователя в удаленной системе. Вам необходимо знать имя пользователя и пароль учетной записи пользователя. Обратите внимание, что учетная запись удаленного пользователя также должна иметь права доступа к файлам в целевом каталоге (в удаленной системе). Вот подробное руководство по правам доступа к файлам в Linux и владению ими.
Передача данных с помощью scp зашифрована, поэтому не нужно опасаться кражи данных.
Использование SCP
Базовая структура команды:
Все команды scp обычно имеют следующую структуру команд. Здесь мы будем копировать файл с локальной машины на удаленную.
Вот краткий обзор структуры команды.
: различные параметры scp, определяющие поведение scp, например, порт SSH, конфигурация SSH, шифр, рекурсивная копия и т. д. : : Подобно команде Linux cp, это «источник». Он определяет исходный файл/каталог для копирования в целевое расположение.
Если «» не указан, то scp автоматически предполагает, что это локальное имя пользователя на локальном компьютере. @ : : аналогично команде cp, это «назначение». Структура аналогична тому, что вы вводите при подключении к удаленной системе через SSH.
Если «» не указан, то scp автоматически предполагает, что это локальное имя пользователя на локальном компьютере.
Копирование локального файла в удаленный каталог
Вот фиктивный текстовый файл. Это текстовый файл размером 2 МБ, содержащий повторяющийся текст.
Следующая команда scp скопирует текстовый файл на удаленный компьютер. Используйте флаг «-v» для подробного вывода.
Если вы хотите сохранить файл под другим именем, вам необходимо указать имя файла в месте назначения. Например, следующая команда сохранит «dummy.txt» как «renamed-dummy.txt» на удаленном компьютере.
Копирование удаленного файла на локальный компьютер
Команда scp также может копировать удаленный файл в локальный каталог.
Для демонстрации «dummy.txt» хранится на удаленной машине. Чтобы скопировать его локально, используйте следующую команду.
Чтобы сохранить файл с другим именем файла, укажите имя файла в команде.
Копировать файлы между удаленными машинами
Как предполагает командная структура scp, также можно копировать файлы между удаленными серверами. Все, что вам нужно сделать, это соответствующим образом описать источник и пункт назначения.
Например, давайте скопируем файл «dummy.txt» с одного удаленного компьютера на другой.
Копирование нескольких файлов
Что делать, если вы хотите скопировать несколько файлов? В зависимости от местоположения источника команда может стать довольно большой.
В следующем примере давайте скопируем файлы dummy_1.txt, dummy_2.txt и dummy_3.txt на удаленный компьютер.
Если имя файла соответствует определенному шаблону, мы можем описать шаблон для выбора исходного файла (файлов). В этом примере мы можем использовать подстановочный знак (*), чтобы скопировать все текстовые файлы.
Увеличение скорости передачи файлов с помощью сжатия
Команда scp обменивается трафиком через сеть. Именно пропускная способность сети в конечном итоге определяет скорость передачи файлов. Однако при фиксированной пропускной способности можно увеличить эффективную скорость передачи файлов с помощью сжатия. Инструмент scp имеет встроенную такую функцию.
Уникальность в том, что данные сжимаются только в сети. Когда файл достигает места назначения, он возвращается к исходному размеру.
Чтобы включить сжатие, используйте флаг «-C».
Алгоритм шифрования
Как упоминалось ранее, scp шифрует передачу данных, чтобы предотвратить кражу данных. По умолчанию данные шифруются с использованием шифрования AES-128. Для шифрования можно использовать разные шифры.
Для шифрования scp использует SSH. Следующая команда SSH выведет список всех поддерживаемых шифров. Все они действительны и для scp.
Например, следующая команда scp будет использовать алгоритм aes256-ctr для шифрования файлов.
Ограничение пропускной способности
По умолчанию scp будет использовать максимальную пропускную способность, доступную для копирования файлов. Тем не менее, это может быть проблематично в различных ситуациях. Например, используя автоматизированный скрипт для резервного копирования.
Чтобы ограничить пропускную способность, используйте флаг «-l», за которым следует ограничение пропускной способности. Здесь значение ограничения пропускной способности будет указано в килобитах в секунду (кбит/с).
Спецификация порта
Подобно SSH, scp по умолчанию использует порт 22. Однако, если SSH настроен для работы на другом порту, его необходимо объявить в команде.
Чтобы указать конкретный порт, используйте флаг «-P», за которым следует номер порта.
Рекурсивное копирование каталога
Подобно команде cp, для копирования каталога и всех его подкаталогов/файлов используйте флаг «-r». Если каталог содержит много файлов/папок, то рекомендуется использовать сжатие для более быстрой передачи данных.
Вот демонстрационный каталог с фиктивными файлами и каталогами.
Следующая команда скопирует этот каталог в удаленное место.
Отключение индикатора выполнения и предупреждающих сообщений
По умолчанию scp сообщает о ходе операции и предупреждающих/диагностических сообщениях на экране. Однако всю эту выводимую информацию можно отключить. Это полезно, если вы реализуете scp в скрипте.
Чтобы отключить прогресс и предупреждающие/диагностические сообщения, используйте флаг «-q».
Заключение:
Использовать команду scp очень просто. Все, что вам нужно, это иметь надлежащее понимание и опыт использования SSH. Это лишь некоторые из самых основных методов использования scp. Для получения более подробной информации о scp посетите справочную страницу.
Удачных вычислений!