Запуск rsync в режиме демона

Nov 26, 2015 15:51 · 516 words · 3 minute read rsync backup

Утилита rsync используется для синхронизации файлов и позволяет значительно сократить использование траффика за счет инкрементального копирования изменений.

Кроме синхронизации файлов и каталогов, данная утилита часто используется в схемах резервного копирования — давайте разберемся с запуском rsync в режиме демона!

В данном примере с помощью утилиты rsync будем копировать резервные копии с нескольких серверов в одно хранилище.

Прежде всего, на сервере-хранилище создаем (или редактируем, если такой файл уже есть) конфигурационный файл /etc/rsyncd.conf:

touch /etc/rsyncd.conf

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

uid = admin 
gid = root
max connections = 50
pid file = /var/run/rsyncd.pid
 
[web1]
  path = /backups/web1
  comment = For backups from web1
  read only = no
  dont compress = *
  hosts allow = 192.168.0.7
  hosts deny = *
 
[web2]
  path = /backups/web2
  comment = For backups from web2
  read only = no
  dont compress = *
  hosts allow = 192.168.0.5
  hosts deny = *
 
[db1]
  path = /backups/db1
  comment = For backups from db1
  read only = no
  dont compress = *
  hosts allow = 192.168.0.6
  hosts deny = *
 
[db2]
  path = /backups/db2
  comment = For backups from db2
  read only = no
  dont compress = *
  hosts allow = 192.168.0.9
  hosts deny = *

В данном примере параметры можно разделить на глобальные (общие для всех) и локальные (параметры для каждого модуля). К глобальным параметрам относятся:

  • uid — имя или id пользователя, от которого происходят прием и передача файлов;
  • gid — имя или id группы, от которой происходят прием и передача файлов;
  • max connections — максимальное количество одновременных подключений;
  • pid file — файл, с котором хранится идентификатор процесса (pid).

Модуль создается при указании его имени в квадратных скобках, в нашем примере созданы модули [web1], [web2], [db1] и [db2]. Для каждого модуля были указаны следующие параметры:

  • path — директория сервера, доступная утилите rsync по имени модуля;
  • comment — строка описания модуля;
  • read only — могут клиенты загружать файлы на сервер или нет;
  • dont compress — шаблон имен файлов, которые не должны сжиматься при передаче (сжатие ресурсозатратная операция, к тому же наши резервные копии будут уже сжаты);
  • hosts allow — шаблон доменных имен и ip-адресов, с которых разрешен доступ к серверу;
  • hosts deny — шаблон доменных имен и ip-адресов, с которых запрещен доступ к серверу.

Примечание. Для более безопасного использования утилиты можно с помощью параметра secrets file указать путь к файлу, в котором хранятся пары вида username:password для аутентификации подключений к модулю.

Создадим необходимые каталоги:

mkdir /backups/web1
mkdir /backups/web2
mkdir /backups/db1
mkdir /backups/db2

В конфигурационном файле /etc/default/rsync установим параметр RSYNC_ENABLE в:

RSYNC_ENABLE=true

После этого запускаем rsync в режиме демона командой:

/etc/init.d/rsync start

Примечание. По умолчанию, rsync-демон для клиентских подключений использует порт 873.

Теперь для копирования в хранилище резервных копий с сервера web1, на сервере достаточно запустить команду:

rsync -a --bwlimit=3000 /var/backup/ storage.com.ua::web1

Резервные копии, которые находятся в каталоге /var/backup/ на сервере web1 будут скопированы на сервер storage.com.ua, в каталог /backups/web1 (именно этот каталог доступен по имени модуля web1) с ограничением скорости 24 Mbps.

Примечание. Параметр --bwlimit позволяет задать скорость передачи в килобайтах за секунду, 3000 kB/s = 24 Mbps

Далее на каждом сервере эту команду следует добавить отдельным заданием в cron или дописать в скрипт, выполняющий резервное копирование.

tweet Share