в debian, rsync

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

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

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

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

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

[code lang=text]
touch /etc/rsyncd.conf
[/code]

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

[code lang=text]
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 = *
[/code]

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

  • 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 для аутентификации подключений к модулю.

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

[code lang=text]
mkdir /backups/web1
[/code]

[code lang=text]
mkdir /backups/web2
[/code]

[code lang=text]
mkdir /backups/db1
[/code]

[code lang=text]
mkdir /backups/db2
[/code]

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

[code lang=text]
RSYNC_ENABLE=true
[/code]

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

[code lang=text]
/etc/init.d/rsync start
[/code]

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

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

[code lang=text]
rsync -a —bwlimit=3000 /var/backup/ storage.com.ua::web1
[/code]

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

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

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

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