Копирование файлов линукс scp

Команда SCP Linux: безопасное копирование и передача файлов

img

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

Команда SCP Linux: безопасное копирование и передача файлов

Как безопасно копировать файлы с помощью SCP

Копировать файл с локального на удаленный сервер с помощью 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.tx t из вашей локальной системы на целевой хост, используя порт 1234.

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

Вы не ограничены только подключением между локальным компьютером и удаленным сервером.

Чтобы скопировать из одной удаленной системы в другую:

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

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

Читайте также:  Running qt creator on linux

Копирование больших файлов с помощью SCP

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

Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново.

Вы можете проверить, установлен ли в вашей системе tmux , выполнив в терминале следующее:

Рекомендации по использованию SCP

Команда scp не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления.

Вам будет предложено ввести пароль, когда вы нажмете Enter.

Используйте пароль пользователя в удаленной системе.

Управление разрешениями

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

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

Параметры команды SCP

scp [options] username1@source_host:/location1/file1 username2@destination_host:/location2/file2

Вот некоторые общие параметры команды 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/

Итоги

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

Источник

Передача файлов между серверами Linux с использованием SCP и FTP

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

Для передачи файлов в Linux есть специальные утилиты. В этой статье мы рассмотрим FTP и SCP. Они широко используются в скриптах автоматизации.

Что такое FTP?

FTP — это сетевой протокол, применяемый для обмена файлами по сети. Он использует порт 21. FTP позволяет вам подключаться к удаленной системе для обмена файлами при помощи команды ftp .

Читайте также:  Горячая клавиша вызова терминала linux

Синтаксис FTP

FTP-синтаксис довольно прост:

Здесь host может быть как именем, так и IP-адресом удаленного хоста, к которому вы хотите подключиться.

Команды FTP

FTP-команды напоминают команды Linux. Вот некоторые из них:

Команда Использование
open Открывает удаленное соединение с другим компьютером.
get Копирует файл из удаленной системы в локальную.
put Копирует файл из локальной системы в директорию удаленной.
mget Передача нескольких файлов из удаленной системы в текущую директорию локальной.
mput Передача нескольких файлов из локальной системы в директорию удаленной.
bye/quit Подготовка к выходу из FTP-окружения.
close Закрывает FTP-соединение.
ascii Включает ASCII-режим передачи файлов.
binary Включает бинарный режим передачи файлов.

Как передавать файлы через FTP

FTP предлагает два режима передачи файлов: ASCII и бинарный.

  • ASCII расшифровывается как American Standard Code for Information Interchange («Американский стандартный код для обмена информацией»). Используется для передачи простых файлов, например, текстовых.
  • Бинарный режим используется для передачи нетекстовых файлов, например, изображений.

По умолчанию FTP использует режим передачи ASCII.

Шаг 1 — установка FTP-соединения

В этом примере hostA — удаленный хост. После ввода команды вам будет предложено ввести имя пользователя и пароль.

$ ftp hostA Connected to hostA. 220 hostA FTP server ready. Name (hostA:user): user 331 Password required for user. Password: password 230 User user logged in. Remote system type is LINUX.

Когда соединение будет успешно установлено, вы заметите символы ftp> в начале строки. Это значит, что теперь вы можете вводить FTP-команды.

Шаг 2 — выбор режима передачи

Вы можете выбрать режим передачи файлов (бинарный или ASCII) в зависимости от их типа.

ftp> ascii 200 Type set to A.

Шаг 3 — передача файла

Здесь мы использовали команду get для передачи файла sample.txt с удаленного FTP-сервера на локальную машину.

ftp> get sample.txt 200 PORT command successful. 150 Opening ASCII mode data connection for sample.txt (22 bytes). 226 Transfer complete. local: sample.txt remote: sample.txt 22 bytes received in 0.012 seconds (1.54 Kbytes/s)

Шаг 4 — завершение сессии

ftp> bye 221-You have transferred 22 bytes in 1 files. 221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA. 221 Goodbye.

Как передать несколько файлов через FTP

Для передачи нескольких файлов одновременно используются две команды: mget и mput .

mget используется для скачивания файлов с сервера, а mput — для заливки на сервер.

ftp> mget sample_file.1 sample_file.2

Здесь мы скачиваем файлы с удаленного хоста на локальную машину.

ftp> mput sample_file.1 sample_file.2

А здесь — наоборот: заливаем с локальной машины на удаленный хост.

Читайте также:  Arch linux cuda install

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

От редакции Techrocks. К сожалению, автор не раскрыла тему защищенной передачи файлов по FTPS, SFTP и FTP через SSH.

Что такое SCP?

SCP расшифровывается как Secure Copy («защищенное копирование»). Для этого копирования используется протокол SSH и порт 22. Данные, передаваемые по SCP, шифруются, и злоумышленники не смогут получить к ним доступ. Это делает передачу файлов по SCP очень безопасной.

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

Синтаксис SCP

Давайте рассмотрим SCP-синтаксис.

scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2

[FLAG]. Здесь могут стоять различные опции — флаги. Вот некоторые из них:

Флаг Описание
-r Рекурсивное копирование директорий.
-q Используется, чтобы спрятать показатель прогресса копирования и всю другую информацию, кроме сообщений об ошибках.
-C Сжатие данных при передаче.
-P Указание SSH-порта на машине, куда пересылаются файлы.
-p Сохраняет начальное время модификации файла.

[user@]SOURCE_HOST. Имя пользователя и машина, с которой отправляется файл.

[user@]DESTINATION_HOST:]. Имя пользователя и машина, куда отправляется файл.

Примечание. Для передачи файлов по SCP нужно знать логин и пароль соответствующего пользователя на удаленной машине, а также иметь права на запись файлов.

Как передать файлы по SCP с локальной машины на удаленный хост

Для передачи файлов на удаленный хост введите следующую команду:

scp source_file.txt remote_username@10.13.13.11:/path/to/remote/directory

Здесь source_file.txt — файл, который нужно скопировать. Remote_username — имя пользователя на удаленном хосте 10.13.13.11. После двоеточия указывается путь на удаленной машине, куда нужно поместить файл.

remote_username@10.13.13.11's password: source_file.txt 100% 0 0.0KB/s 00:00

Теперь файл source_file.txt находится на удаленной машине, в директории по адресу /path/to/remote/directory.

Для копирования директорий используется флаг -r , как показано ниже.

scp -r /local/directory remote_username@10.13.13.11:/path/to/remote/directory

Как передать файлы по SCP с удаленного хоста на локальную машину

Для копирования файлов с удаленного хоста используется следующий формат команды:

scp remote_username@10.13.13.11:/remote/source_file.txt /path/to/local/directory

По сути, здесь все так же, как в предыдущем примере, просто исходный адрес и адрес назначения меняются местами.

При передаче файлов будьте предельно внимательны! SCP перезаписывает уже существующие файлы.

Итоги

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

При использовании в скриптах автоматизации эти команды очень полезны для сохранения, архивирования и пакетной обработки файлов.

Источник

Оцените статью
Adblock
detector