Испытываете трудности с командой безопасного копирования Linux? Используйте этот пример scp

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

Сложность команды scp заключается в том, что либо источник, либо место назначения могут быть удаленными, то есть компьютер, подключенный к другой сети, отличной от вашей локальной. При указании файла для копирования вам также необходимо указать сведения об удаленном хосте. Это включает его IP-адрес и имя пользователя.

Загрузка файла с помощью команды scp

Общий синтаксис scp:

 scp source destination

Обратите внимание, что это по сути тот же синтаксис, что и у команды cp .

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

 scp index.html [email protected]:/var/www/html/

Это скопирует локальный файл с именем index.html на удаленный хост. Вы можете указать это так же, как вы указываете файл для любой другой команды. Это может быть абсолютная или относительная ссылка на файл. Итак, index.html , ../index.html и /home/bobby/index.html – это разные способы указания локального файла.

Пункт назначения в примере – [email protected]: / var / www / html / . Это значит, что:

  1. Пользователь bobby будет владельцем нового файла на удаленном сервере. Этот пользователь должен существовать, и вы должны иметь к нему доступ.
  2. Имя хоста сервера, на который мы загрузим файл, – example.org . Мы указали здесь домен, но вы также можете использовать вместо него IP-адрес .
  3. На этом сервере scp загрузит файл в каталог / var / www / html / .

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

Загрузка всего каталога

Вот несколько более сложный вариант, при котором загружается весь каталог:

 scp -rpC [email protected]:/tmp/docs /home/bobby

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

  1. -r: Рекурсивно загружает весь каталог. Он перенесет все файлы в / tmp / docs . Это очень полезно для быстрого резервного копирования или передачи большого количества файлов, особенно если у вас нет доступа для входа на удаленный хост.
  2. -p: сохраняет временные метки файлов и режимы исходных файлов. Ваши локальные копии будут иметь такое же время создания или разрешения на запись, что и их оригиналы.
  3. -C: включает сжатие. Если вы передаете много файлов, это может ускорить процесс, особенно если вы используете медленное соединение.

Команда scp почти так же проста, как и cp

Базовое использование команды scp очень простое: она такая же, как и cp. Основное отличие состоит в том, что scp требуется еще несколько деталей для удаленного сервера. Однако, как и в случае с cp, есть полезные флаги для расширения базовой функциональности. К ним относятся сжатие и рекурсивное копирование для обеспечения загрузки нескольких файлов.

Освоение команды scp может пригодиться, если вас попросили управлять сервером Linux. Резервное копирование и удаленная передача данных – ежедневная задача для тех, кто занимается администрированием серверов.