ProCloud Yandex
26.07.2023
читать 9 минут

Установка, настройка и примеры синхронизации Rsync

/upload/iblock/672/uly1lw2o75sd2m83kg5chtllfpjdrvc7/abstract.jpg

У пользователей часто есть необходимость передавать файлы между серверами, компьютерами или иными видами устройств. Чаще всего для этого применяют ssh или scp, но при работе с тяжелыми файлами это решение не подходит. Приходится использовать различные утилиты. Одной из наиболее известных и популярных считается Linux Rsync с интуитивно понятным управлением и богатым функционалом. Ее довольно часто используют системные администраторы для выполнения резервных копий.

Стоит рассмотреть подробнее, Rsync – что это. По сути, это ПО с открытым исходным кодом, которое используется для синхронизации информации между устройствами. При этом данный софт может легко передавать сведения через SSH и SSL. В отличие от большинства конкурентов, тут реализована однопоточная передача информации, что позволяет увеличить производительность и уменьшить задержку.

Интересно, что впервые программа появилась в 1996 году. С тех пор она была существенно изменена. За счет предоставления открытого кода каждый может допиливать софт в соответствии со своими задачами и потребностями. Также есть и официальные релизы данного софта, которые есть в открытом доступе на тематических сайтах.

Возможности Rsync

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

При первом запуске происходит полная синхронизация. Далее резервное копирование Rsync предполагает только передачу измененных файлов. Как результат, удается достичь оптимальной скорости даже при узком сетевом канале. Системный администратор может сжать данные перед передачей. В этой утилите используется алгоритм сжатия Deflate.

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

Установка, настройка и запуск Rsync на CentOS

Установка Rsync должна происходить из репозитория ОС. Команда

dnf -y install rsync rsync-daemon

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

Перед началом работы производится настройка Rsync. Основные Rsync параметры находятся в файле /etc/rsyncd.conf. Здесь можно изменить следующие опции:

  • файл, где будет храниться номер процесса демона;
  • файл блокировки, чтобы предотвратить повторное включение ПО;
  • журнал с логами, которые создаются автоматически;
  • путь до каталога с целью выполнения резервного копирования и/или синхронизации;
  • хосты, которым разрешено и запрещено подключаться к демону;
  • разрешение или запрет на чтение каталога;
  • пользователь или группа от имени которых будет осуществляться синхронизация;
  • флаг, чтобы защитить информацию от изменения или удаления;
  • описание конфигурации.

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

Синтаксис Rsync

Синтаксис интуитивно понятный, что является важным преимуществом. Так, Rsync команды выглядят следующим образом:

rsync -options <source> <destination>
  • -options – параметры запуска;
  • <source> источник для синхронизации;
  • <destination> устройство для приема данных синхронизации.

Программа предусматривает довольно много опций, среди которых:

  • возможность показать прогресс синхронизации;
  • запрет отображения информации об ошибках;
  • появление на месте даты и времени данных о сравнении контрольных сумм;
  • включение возможности архивировать информацию;
  • активация рекурсивного режима копирования каталогов;
  • создание резервной копии при загрузке обновлений;
  • принудительное указание места для хранения резервных копий;
  • автоматическое добавление символа к резервным файлам, чтобы можно было их легко отличать;
  • автоматический пропуск файлов с более поздней датой корректировки;
  • включение режима, который сохраняет символические/жесткие ссылки;
  • сохранение разрешения файла или каталога;
  • сохранение прав на запуск объектов;
  • изменение прав доступа к объектам;
  • сохранение сведений о первоначальном владельце файлов;
  • проведение дефрагментации одновременно с синхронизацией;
  • выполнение полного копирования файлов, а не только той части, которая претерпела изменения;
  • указание версии утилиты;
  • возможность отдавать повышенный приоритет протоколу IPv4 или v6;
  • ограничение скорости передачи пакетов;
  • ограничение максимального и минимального размера файла для осуществления синхронизации;
  • выбор порта для подключения к удаленному хосту;
  • автоматизация доступа к системе по логину и паролю.

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

Локальная и удаленная работа с файлами

Работа Rsync с файлами локально достаточно проста. Требуется задать источник и приемник:

/path/sourcefolder
/path/destinationfolder

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

[email protected]:/path/destinationfolder

Синхронизация по SSH и Rsync-демон

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

Автоматическая синхронизация папок

Эту задачу можно выполнить с помощью планировщика cron. Выполнять скрипт намного удобнее, если работать с помощью планировщика.

Просмотр прогресса синхронизации

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

Удаление при синхронизации

Если в настройках параметры по умолчанию, то каталог-приемник будет хранить все файлы, которые когда-то были туда отправлены. Речь идет даже о тех файлах, которые уже были удалены пользователем на источнике. Чтобы не захламлять резервное хранилище, требуется выполнять периодический мониторинг с целью удаления файлов, которые потеряли свою актуальность, используя ключ --delete при запуске утилиты.

Ограничение максимального размера и скорости передачи

Обычно канал связи ограничен пропускной способностью. Задача синхронизации будет обладать низким приоритетом, поэтому у нее будет небольшая скорость передачи пакетов. Ограничить скорость можно с помощью опции --bwlimit.

Также в данном софте предусмотрено ограничение максимального размера файла, который будет подвергаться синхронизации. Необходимо использовать ключ --max-size.

Опции include и exclude

Благодаря этим командам системный администратор может вручную включать или удалять из синхронизации те или иные файлы. Если добавить «from», то не придется прописывать каждый файл отдельно. Можно указать сразу блок файлов.

Пример использования Rsync

Стоит подробнее рассмотреть, как именно работает Rsync во время работы с облачными сервисами ProCloud с помощью контейнера в объектном хранилище.

Объектное хранилище S3 ProCloud
arrow
arrow hover

В первую очередь нужно создать контейнер в личном кабинете. Благодаря возможности осуществлять синхронизацию по SSH путем использования демона, удастся установить соединение с объектным хранилищем через S3 API. Нужно примонтировать контейнер к файловой системе, чтобы обращаться как к локальному разделу. Для этого нужно установить и настроить утилиту s3fs.

Настройка s3fs подробно описана в статье “Монтирование контейнера объектного хранилища в Linux

Заключение

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

Статьи по теме:

читать 8 минут
arrow
arrow hover
Новости
5 апреля 202405.04.2024
читать 1 минутучитать 1 мин
ProCloud CPO Диана Беда в рейтинге ИТ-лидеров от Global CIO
28 марта 202428.03.2024
читать 1 минутучитать 1 мин
Запуск новой локации: Казахстан
6 марта 202406.03.2024
читать 1 минутучитать 1 мин
ProCloud №1 в Рейтинге облачных провайдеров 2023