🐧 SCP vs RSYNC – что из них использовать в продакшене? |

🐧 SCP vs RSYNC – что из них использовать в продакшене?

Мануал

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

SCP (Secure Copy Protocol) и Rsync – это широко используемые инструменты командной строки для передачи файлов между компьютерами в сети.

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

Основные различия между SYNC и RSYNC

Определение

SCP – это часть пакета SSH (Secure Shell), обеспечивающая безопасный и аутентифицированный метод копирования файлов между локальным и удаленным хостом или между двумя удаленными хостами.

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

🐧 4 способа подключения к SSH и SCP через прокси-сервер (jump) на Linux

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

Она может работать по SSH для защиты передаваемых данных и часто используется для резервного копирования и синхронизации файлов между системами благодаря своей эффективности и гибкости.

Синтаксис

Основной синтаксис команд SCP выглядит следующим образом:

scp [OPTIONS] [[user@]source_host:]file1 [[user@]destination_host:]file2
  • OPTIONS: Для изменения поведения SCP можно применять различные опции, например -P (указать ssh-порт удаленного хоста), -p (сохранить время модификации файлов и доступа к ним) и -r (рекурсивно копировать целые каталоги).
  • user@: Необязательно. Указывает имя пользователя на удаленном хосте. Если не указано, SCP принимает то же имя пользователя, что и в локальной системе.
  • source_host: Имя хоста или IP-адрес системы-источника. Если не указано, SCP предполагает, что файл находится в локальной системе.
  • destination_host: Имя хоста или IP-адрес системы назначения.
  • file1, file2: Пути к исходному и целевому файлу соответственно.

Например:

scp /path/to/local/file.txt user@remote_host:/path/to/remote/directory

Основной синтаксис Rsync следующий:

rsync [options] [[user@]source_host:]source_path [[user@]destination_host:]destination_path
  • [options]: Сюда входят все специфические для Rsync опции, такие как -a (режим архивации), -v (многословность), -z (сжатие данных во время передачи) и т. д.
  • [[user@]source_host:]: Опционально указывает имя пользователя и хост для расположения источника. Если они не указаны, Rsync принимает локальный путь. Указание хоста подразумевает удаленный доступ, обычно защищенный по SSH.
  • source_path: Путь к исходному файлу или каталогу. Это может быть локальный путь или путь на хосте источника, если указано.
  • [[user@]destination_host:]: Опционально указывает имя пользователя и хост для места назначения. Как и в случае с исходным хостом, опущение этого параметра подразумевает локальный путь к месту назначения.
  • path_To: Путь, по которому будут скопированы файлы или каталоги. Он может находиться в локальной системе или на указанном хосте назначения.

Например:

rsync -avz /local/dir/ user@remote_host:/remote/dir/

Безопасность

  • SCP: По умолчанию работает через SSH (Secure Shell), обеспечивая безопасный канал с шифрованием и аутентификацией. Уровень безопасности привязан к SSH, что делает его очень безопасным для передачи файлов.
  • Rsync: По умолчанию rsync использует протокол Rsync, но может работать и по SSH. rsync обеспечивает тот же уровень безопасности, что и SCP, если настроен на это. Однако rsync также может работать в режиме демона без SSH, что может быть менее безопасно, если не настроить должным образом другие меры безопасности.

Чтобы использовать Rsync с SSH, вы можете просто добавить опцию -e (или –rsh) к команде Rsync, указав ssh в качестве удаленной оболочки:

rsync -avz -e ssh /path/to/source/ user@remote_host:/path/to/destination/

В этой команде:

  • -a – режим архивации, в котором сохраняются разрешения, временные метки и т. д.
  • -v включает режим verbose.
  • -z включает сжатие при передаче данных.
  • -e ssh указывает Rsync использовать SSH для передачи данных.

🐧 Как возобновить частично переданные файлы по SSH Используя Rsync

Если ваш удаленный хост прослушивает нестандартный порт SSH, вы можете указать этот порт с помощью опции -e, как показано ниже:

rsync -avz -e 'ssh -p 2222' /path/to/source/ user@remote_host:/path/to/destination/

Где -p 2222 указывает, что SSH должен подключаться к порту 2222 на удаленном хосте.

Для более сложных настроек или повышения безопасности можно передать дополнительные параметры SSH с помощью флага -e.

Например, чтобы отключить строгую проверку ключей хоста, вы можете использовать:

rsync -avz -e 'ssh -o StrictHostKeyChecking=no' /path/to/source/ user@remote_host:/path/to/destination/

 Производительность

  • SCP: Несмотря на безопасность и простоту, SCP не всегда является наиболее эффективным, особенно для больших массивов данных. В нем нет возможности сжимать данные во время передачи (хотя сжатие в SSH можно включить), и он всегда копирует файлы целиком, что может быть медленным и требовательным к пропускной способности для больших файлов.
  • Rsync выполняет более сложную операцию, сравнивая исходный и конечный файлы перед передачей. Этот шаг сравнения может привести к улучшению общей производительности с точки зрения использования полосы пропускания, но может быть более требовательным к процессору во время процесса сравнения.

Масштабируемость

  • SCP: Масштабирование с помощью SCP может быть затруднено из-за отсутствия функций инкрементного копирования и синхронизации. Для крупномасштабных операций эффективное управление пропускной способностью и хранением становится затруднительным.
  • Rsync: Rsync лучше подходит для масштабирования благодаря функции инкрементного обновления и возможности эффективной синхронизации каталогов и файлов в нескольких местах. Он лучше адаптируется к различным сетевым условиям и конфигурациям хранилищ.

Работа с прерванными передачами

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

🕡 Как сохранить права доступа acl при использовании команд tar и rsync

Эффективность и скорость передачи данных

  • SCP обычно быстрее для отдельных файлов или при передаче данных в первый раз, поскольку он копирует все содержимое без проверки различий.
  • Rsync превосходит по эффективности, особенно при последующих передачах, поскольку копирует только различия между источником и местом назначения, что может значительно сократить время передачи и использование полосы пропускания.

см. также:

 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий