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

 

Что такое Rsync?

Rsync (Remote Sync) – это инструмент для передачи файлов и директорий между компьютерами через сеть. Он отличается от других подобных инструментов тем, что использует дельта-кодирование, которое позволяет передавать только изменившиеся части файла вместо полной копии. Это значительно сокращает нагрузку на сеть и ускоряет процесс синхронизации.

Основные преимущества rsync:

  • Эффективность передачи данных благодаря дельта-сжатию.
  • Поддержка инкрементальных обновлений.
  • Возможность работы по протоколу SSH для обеспечения безопасности.
  • Простота использования.

Отличие резервных копий от архива

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

Установка и настройка Rsync Server

Шаг 1: Установка Rsync

Для начала необходимо убедиться, что пакет rsync установлен на вашей системе. Рассмотрим установку на популярных дистрибутивах Linux: CentOS и Ubuntu.

Установка на Rocky:

sudo dnf install rsync-daemon

Установка на Ubuntu:

sudo apt-get update && sudo apt-get install rsync

После установки пакета можно приступать к настройке сервера.

 

Шаг 2: Создание конфигурационного файла

Конфигурационный файл Rsync определяет параметры работы сервера. Создадим файл /etc/rsyncd.conf.

Пример содержимого этого файла:

uid = nobody
gid = nobody
use chroot = no
max connections = 4
log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

[backup]
path = /home/user/backups/
comment = Backup Directory
read only = false
list = yes
auth users = user1,user2
secrets file = /etc/rsyncd.secrets

Разберем ключевые параметры:

  • uid и gid: определяют пользователя и группу, под которыми будет работать демон.
  • use chroot: запрещаем или разрешаем изменение корневой директории.
  • max connections: максимальное количество одновременных соединений.
  • log file, pid file, lock file: пути к файлам логов, PID и блокировки соответственно.
  • [backup]: секция описывает конкретный модуль, который будет доступен клиентам.
  • path: путь к директорию, которую нужно синхронизировать.
  • comment: комментарий для модуля.
  • read only: определяет права доступа к модулю.
  • list: разрешает или запрещает просмотр списка модулей.
  • auth users: список пользователей, которым разрешено подключаться к этому модулю.
  • secrets file: путь к файлу паролей.

Шаг 3: Создание файла паролей

Для защиты доступа к серверу создадим файл /etc/rsyncd.secrets. Этот файл содержит пары логин-пароль для авторизации клиентов.

Пример содержимого файла:

user1:password1
user2:password2

Убедитесь, что у файла правильные разрешения:

chmod 600 /etc/rsyncd.secrets

Шаг 4: Запуск демона Rsync

Теперь запустим Rsync-демон:

rsync --daemon --config=/etc/rsyncd.conf

Этот параметр запускает демон с использованием созданного ранее конфигурационного файла.

Настройка клиента

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

Подключение к серверу

Подключиться к Rsync-серверу можно следующим образом:

rsync -avz user@server:/path/to/source /local/path

Где:

  • -a: рекурсивный режим с сохранением прав доступа и метаданных.
  • -v: подробный вывод информации о процессе.
  • -z: сжатие передаваемых данных.
  • user@server: имя пользователя и адрес сервера.
  • /path/to/source: путь к источнику на сервере.
  • /local/path: путь к целевой папке на локальной машине.

Использование ключей аутентификации

Для повышения безопасности можно использовать ключи SSH для подключения к серверу без необходимости ввода пароля каждый раз.

Создайте пару ключей на клиентской машине:

ssh-keygen -t rsa

Затем скопируйте публичный ключ на сервер:

ssh-copy-id user@server

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

 

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

Синхронизация каталога с удалённым сервером

Предположим, вам нужно синхронизировать локальный каталог /home/user/data с удалённой директорией /home/user/remote_data на сервере example.com.

rsync -avz /home/user/data user@example.com:/home/user/remote_data

Синхронизация с исключением некоторых файлов

Иногда требуется исключить некоторые типы файлов или целые директории из процесса синхронизации. Например, чтобы исключить все файлы с расширением .tmp и директорию cache, выполните следующую команду:

rsync -avz --exclude="*.tmp" --exclude=cache /home/user/data user@example.com:/home/user/remote_data

Инкрементальное резервное копирование

Инкрементальная резервная копия сохраняет только изменения, произошедшие с момента последнего бэкапа. Это экономит пространство и время.

rsync -auvzP --link-dest=$HOME/backup/prev_backup $HOME/data $HOME/backup/current_backup

Здесь:

  • --link-dest: указывает на предыдущую версию бэкапа, создавая жёсткие ссылки на неизменённые файлы.
  • $HOME/backup/prev_backup: предыдущий бэкап.
  • $HOME/data: источник данных.
  • $HOME/backup/current_backup: текущая версия бэкапа.

Заключение

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

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *