SCP LINUX. Удаленное копирование и перенос данных

Эта статья посвящена использованию scp в linux — что это за команда, и, как ее использовать для защиты передачи файлов.

Для начала — SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены.

А теперь к статье

Копирование файлов с локального на удаленный сервер при помощи SCP

Команда scp позволяет использовать подстановочные знаки.

Используйте символ тильды ~/ для обозначения home/user каталога пользователя. Также можно указать строку текста со знаком *.

Например, /~/*.txt заставит SCP скопировать все файлы в домашнем каталоге, которые заканчиваются на .txt.

Как правило, не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user и хотите скопировать файл test.txt на сервер, вы можете ввести следующее:

scp test.txt username2@destination:/location2

Чтобы скопировать все файлы .txt в домашний каталог username2, введите следующее:

scp *.txt username2@destination_host:/~/

Если вы укажете только каталог назначения, SCP оставит имя файла как есть.

Чтобы изменить имя файла, определите новое имя файла в месте назначения:

scp test.txt username2@destination_host:/user/home/user1test.txt

В этом примере файл test.txt копируется с локального компьютера, а затем сохраняется как user1test.txt в каталоге пользователя системы назначения.

Если удаленная система настроена на прослушивание SSH-запросов на порт, отличный от порта 22 по умолчанию, используйте переключатель -P, чтобы указать порт:

scp –P 1234 test.txt user2@destination_host:/location2/

Это копирует test.txt из вашей локальной системы на целевой хост, используя порт 1234.

Копирование с удаленного хоста на другой удаленный хост

Команда scp позволяет копировать данные с одного удаленного хоста на другой. Чтобы это сделать необходимо использовать вот эту команду:

scp user1@host1.com:/files/test.txt user2@user2.com:/files

Это приведет к копированию файла test.txt из каталога /files на host1.com в каталог /files на /host2.com. Система предложит ввести пароль для пользователей user1 и user2 до завершения операции.

Параметры которые можно передать scp

Вот некоторые общие параметры команды scp:

  • -P — Указать порт SSH сервера
  • -p — сохранить метку времени для изменения и доступа (обратите внимание на строчные буквы)
  • -q — тихий режим, без отображения прогресса или сообщений (все равно будут отображаться ошибки)
  • -C — Сжимать данные во время передачи
  • -r — Рекурсивно — включать подкаталоги и их содержимое

Раздел, следующий сразу за параметрами, — это источник (путь) файла, который вы хотите скопировать. Вы можете скопировать из своей системы в удаленную или наоборот.

В следующем разделе указывается место, куда копируется файл. Например:

scp user@local_system:/home/user/test.txt admin@remote_system:/home/user

Это скопирует документ test.txt из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе.

Чтобы скопировать файл с удаленного хоста на локальный при помощи SCP :

scp user@from_host:file.txt /local/directory/