Установка и настройка Rsync
Синхронизация файлов и папок – один из инструментов для организации совместной работы над проектами. Процедура особенно эффективна, если проводится резервное копирование документов и файлов других типов на облачный диск, вынесенный за пределы внутренней IT-инфраструктуры. Программа Rsync как раз и используется для синхронизации, копирования папок или отдельно взятых файлов на удаленные хосты.
Перечень возможностей Rsync
В продукт встроена уникальная функция, позволяющая переносить только изменения, а не файлы целиком. Такой подход экономит трафик сети, снижает риски сбоев при обрыве связи, увеличивает скорость резервирования. Наиболее существенным выигрыш оказывается при обработке больших проектов, когда изменения происходят в них часто из-за значительно количества участников. И это еще не полный перечень возможностей.
Так, еще Rsync под Linux умеет:
- Первая синхронизация – это полная передача файлов, затем программа проверяет изменения и копирует только «новые» блоки (фактически побайтовым способом).
- Информация сжимается – утилита применяет алгоритм Deflate при помощи библиотеки zlib, это снижает нагрузку на каналы связи.
- Переносятся права – Rsync в Ubuntu и на других платформах реплицирует как каталоги и файлы, так и разрешения на них.
Последнее позволяет работать без предоставления прав root – такой подход позволяет резервировать данные и восстанавливать их под любым пользователем, независимо от учетной политики. Утилита была разработана взамен RCP, используемой еще под Unix. Поэтому в нее и внесли столь важные и ранее недостающие возможности. На практике ее часто используют для создания «зеркал», которые подключаются на случай краха системы, например, из-за поломки оборудования.
Как установить и настроить Rsync на CentOS
Процедура инсталляции обычно не вызывает затруднений. Программу берут в репозитории ОС, с которой предстоит работать (например, CentOS 8). Она состоит из двух частей – серверной, которая принимает входящие обращения на синхронизацию, и клиентской, инициирующей запросы. Работа Rsync осуществляется по каналу SSH (по умолчанию), с указанным в конфигурации каталогом.
Последовательность команд по инсталляции и настройке:
dnf -y install rsync rsync-daemon
mkdir /tmp/share
vi /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsync.log [s]
Конфигурирование проводится через ручное изменение текстового файла 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 – параметры запуска;
- – каталог (файл), выступающий в качестве источника;
- – директория-приемник файлов.
Примеры команд для Rsync:
- -v, -verbose – при работе утилиты на экран выводятся отладочные данные;
- -q, -quiet – отображение ошибок на экране запрещен;
- -c, -checksum – сравнивается контрольная сумма документов, а не дата-время;
- -a, -archive – подключение системы сжатия информации;
- -r, recursive – активируется рекурсивное резервирование;
- -b, -backup – утилита делает резервные копии файлов-оригиналов;
- -backup-dir= – директория, куда будут «складываться» архивы;
- -suffix=SUFFIX – дополнение к имени файла, задаваемое при переносе в резервный каталог;
- -u, -update – программа пропустит документы с более поздним временем обновления;
- -progress – включается отображение уровня прогресса процедуры;
- -delete – система удаляет файлы, если они исчезли из списка копирования;
- -exclude = – перечень документов, удаляемых из очереди синхронизации.
Существует еще более десятка команд, используемых с этой утилитой. Их лучше изучать согласно актуальной документации на программу. Ниже пример локального режима работы:
rsync -avzhHl /path/of/source/folder /path/to/destination/folder
Или работы с удаленным модулем Rsync Server :
rsync -avzhHl /path/of/source/folder
Во втором случае пользователь указывает IP-адрес хоста, логин и пароль для доступа к нему.
Заключение
Мы разобрали примеры использования утилиты Rsync и краткий перечень ее популярных команд. Теперь дело за пользователем – остается арендовать облачный диск, например на cloud.timeweb.com , и перенести на него свои проекты.
На рабочих файлах, особенно с критически важным содержимым, лучше применять проверенные параметры, в которых администратор на 100% уверен.