Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Перечень возможностей Rsync
В продукт встроена уникальная функция, позволяющая переносить только изменения, а не файлы целиком. Такой подход экономит трафик сети, снижает риски сбоев при обрыве связи, увеличивает скорость резервирования. Наиболее существенным выигрыш оказывается при обработке больших проектов, когда изменения происходят в них часто из-за значительно количества участников. И это еще не полный перечень возможностей.
Так, еще Rsync под Linux умеет:
Первая синхронизация – это полная передача файлов, затем программа проверяет изменения и копирует только «новые» блоки (фактически побайтовым способом).
Информация сжимается – утилита применяет алгоритм Deflate при помощи библиотеки zlib, это снижает нагрузку на каналы связи.
Переносятся права – Rsync в Ubuntu и на других платформах реплицирует как каталоги и файлы, так и разрешения на них.
Последнее позволяет работать без предоставления прав root – такой подход позволяет резервировать данные и восстанавливать их под любым пользователем, независимо от учетной политики. Утилита была разработана взамен RCP, используемой еще под Unix. Поэтому в нее и внесли столь важные и ранее недостающие возможности. На практике ее часто используют для создания «зеркал», которые подключаются на случай краха системы, например, из-за поломки оборудования.
Как установить и настроить Rsync на CentOS
Процедура инсталляции обычно не вызывает затруднений. Программу берут в репозитории ОС, с которой предстоит работать (например, CentOS 8). Она состоит из двух частей – серверной, которая принимает входящие обращения на синхронизацию, и клиентской, инициирующей запросы. Работа Rsync осуществляется по каналу SSH (по умолчанию), с указанным в конфигурации каталогом.
Последовательность команд по инсталляции и настройке:
Конфигурирование проводится через ручное изменение текстового файла rsyncd.conf. Содержится он в каталоге /ETC, а редактируется любой программой, поддерживающей данный формат. Список настроек следующий:
pid file – указать, куда сохранять номера процессов в активной сессии Rsync;
lock file – создать файл, который блокирует активацию дубля программы;
log file – лог-файл, куда вносятся все проводимые операции;
path – путь к директории, которую предстоит синхронизировать;
hosts allow – хосты, откуда разрешено принимать данные;
hosts deny – аналогично, но речь идет о хостах, от которых запрещено принимать данные;
list – флажок, позволяющий разрешить/запретить чтение директории;
uid – имя пользователя, указанное в качестве «автора» зарезервированных копий;
gid – группа пользователей, которая используется при пометке архивов;
read only – флажок блокирования архивной информации от удаления и изменения;
comment – комментарии.
В качестве uid и gid рекомендуется применять учетки без привилегий. После корректировок конфигурационного файла его закрывают с сохранением внесенных изменений. Остается настроить брандмауэр, чтобы тот не блокировал запросы, а резервирование работало автоматически по мере внесения корректировок в файлы на рабочих станциях.
setsebool -P rsync_full_access on
firewall-cmd --add-service=rsyncd --permanent
firewall-cmd --reload
Все, теперь утилита подготовлена к первому запуску:
systemctl enable --now rsyncd
Синтаксис команд для работы с Rsync
При работе в консоли с утилитой Rsync применяют целый перечень ключей. Их вносят в строку с учетом принятого для программы синтаксиса. Структурный вид командной строки:
-options – параметры запуска;
– каталог (файл), выступающий в качестве источника;
– директория-приемник файлов.
-v, -verbose – при работе утилиты на экран выводятся отладочные данные;
-q, -quiet – отображение ошибок на экране запрещен;
-c, -checksum – сравнивается контрольная сумма документов, а не дата-время;
-a, -archive – подключение системы сжатия информации;
-b, -backup – утилита делает резервные копии файлов-оригиналов;
-backup-dir=<каталог> – директория, куда будут «складываться» архивы;
-suffix=SUFFIX – дополнение к имени файла, задаваемое при переносе в резервный каталог;
-u, -update – программа пропустит документы с более поздним временем обновления;
-progress – включается отображение уровня прогресса процедуры;
-delete – система удаляет файлы, если они исчезли из списка копирования;
-exclude=<имена файлов> – перечень документов, удаляемых из очереди синхронизации.
Существует еще более десятка команд, используемых с этой утилитой. Их лучше изучать согласно актуальной документации на программу. Ниже пример локального режима работы:
Во втором случае пользователь указывает IP-адрес хоста, логин и пароль для доступа к нему.
Мы разобрали**** примеры использования утилиты Rsync и краткий перечень ее популярных команд. Теперь дело за пользователем – остается арендовать облачный диск, например на Simple-Server, и перенести на него свои проекты.
На рабочих файлах, особенно с критически важным содержимым, лучше применять проверенные параметры, в которых администратор на 100% уверен.