Как установить и настроить Rsync

Wiki : Rsync (англ. Remote Synchronization) — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.

Rsync является общепризнанным программным обеспечением, которое работает надежно и быстро. Бэкапленд использует его для оптимального механизма создания резервных копий, а так же по причине его массовой распространенности на серверах, что означает, что вы сможете работать с нашей системой без каких-либо настроек на вашей стороне. Но из каждого правила существуют исключения, поэтому ниже мы предлагаем подробную инструкцию как установить и настроить Rsync на серверах с операционными системами Debian, Ubuntu, Centos и FreeBSD.

Проверка:

Проверьте установлен ли rsync:

выполните команду в ssh: whereis rsync если ответом будет /usr/local/bin/rsync или /usr/bin/rsync то rsync у вас есть, вам его устанавливать не нужно.

Так же можете проверить, просто запустив команду в ssh: rsync или /usr/local/bin/rsync или /usr/bin/rsync если будет ответ, а не ошибка, тогда вам его устанавливать не нужно.

Установка:

Описанные далее установка и настройка rsync возможны, только если у Вас есть права root. Если таких прав нет, напишите Вашему системному администратору или в техническую поддержку хостинга с просьбой установить rsync.


Для FreeBSD:cd /usr/ports/net/rsync
make install

Для Linux Debian и Ubuntu:apt-get install rsync

Для Centos:yum install -y rsync

Настройка:

Настраивать rsync нужно только в одном случае, если Вы хотите, чтобы наша система создавала резервные копии не через SSH, а через демон rsyncd.

Через файл конфигурации настройки rsyncd вы можете:

  • Задать своего пользователя и пароль
  • Разрешить вход к вам только с определенного IP/хоста (наш хост при заказе мы вам высылаем)
  • Разрешить доступ к конкретным директориям и файлам на вашей системе

Настройка rsync для FreeBSD:cd /usr/local/etc/

cоздаем файл приветствия (не обязательно)echo "Hello from rsync server" > rsyncd.motd
echo "Server Adress: My SuperHost 1.1.1.1" >> rsyncd.motd

создаем файл c именем пользователя и паролемecho "backup:ПАРОЛЬ" > rsyncd.scrt
chmod 0600 /usr/local/etc/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf

1) cd /usr/local/etc/

2) mv rsyncd.conf rsync.original

3)
cat << EOF >> /usr/local/etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
motd file = /usr/local/etc/rsyncd.motd

uid = root
gid = wheel
max connection = 4

auth users = backup
secrets file = /usr/local/etc/rsyncd.scrt

[root]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

4) /usr/local/etc/rc.d/rsyncd restart

Теперь настраиваем так, чтобы после перезагрузки сервера у вас запускался демон rsyncd

Делаем отступ с переносом на следующую строку echo "" >> /etc/rc.conf

Добавлем разрешение запускать при старте echo 'rsyncd_enable="YES"' >> /etc/rc.conf

Настройка rsync для Linux Debian и Ubuntu:

Находите файл /etc/default/rsync
В нем находите строку:
RSYNC_ENABLE=false
и меняете на:
RSYNC_ENABLE=true

Таким образом мы разрешаем при загрузке сервера запустить демон rsyncd

Далее создадим папку для наших файлов:mkdir /etc/rsync/
cd /etc/rsync/

создаем файл приветствия (не обязательно)echo "Hello from rsync server" > rsyncd.motd
echo "Server Adress: My SuperHost 1.1.1.1" >> rsyncd.motd

создаем файл c именем пользователя и паролемecho "backup:ПАРОЛЬ" > rsyncd.scrt
chmod 0600 /etc/rsync/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf cd /etc/ Обратите внимание на то, что файл rsyncd.conf должен быть расположен в папке /etc/

mv rsyncd.conf rsyncd.old делаем так на всякий случай, вдруг файл такой уже есть

cat << EOF >> /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid

motd file = /etc/rsync/rsyncd.motd

uid = root
gid = root
max connection = 4

auth users = backup
secrets file = /etc/rsync/rsyncd.scrt

[root]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

/etc/init.d/rsyncd restart

Настройка rsync для Centos 6:

Устанавливаем xinetd (нужен для пуска rsync сервера): yum install -y xinetd

Находите файл /etc/xinetd.d/rsync, в нем находите строку:
disable = yes
и меняете на:
disable = no

Перезагружаем сервис xinetd:/etc/init.d/xinetd restart

Добавляем xinetd в автозапуск:chkconfig xinetd on

Конфиг создаем такой же как и для Centos 7 (смотри ниже).

Настройка rsync для Centos 7:

Включаем в автозагрузкуsystemctl enable rsyncd.service

Запускаем rsyncd демонsystemctl start rsyncd.service

Далее создадим папку для наших файлов:mkdir /etc/rsync/
cd /etc/rsync/

создаем файл приветствия (не обязательно)echo "Hello from rsync server" > rsyncd.motd
echo "Server Adress: My SuperHost 1.1.1.1" >> rsyncd.motd

создаем файл c именем пользователя и паролемecho "backup:ПАРОЛЬ" > rsyncd.scrt
chmod 0600 /etc/rsync/rsyncd.scrt

где ПАРОЛЬ тот, что мы выдаем вам при создании в панели управления задания на резервное копирование. В дальнейшем вы можете изменить пароль на свой в файле rsyncd.scrt и на сервере хранения резервных копий в файле /var/www/rc-******/data/rsyncd.pass, где rc-****** ваш логин на сервер с бэкапами.

Внимание! Если пароли на вашем сервере и сервере с бэкапами не совпадут, резервные копии создаваться не будут.

Далее создаем основной конфиг rsyncd.conf

cd /etc/Обратите внимание на то, что файл rsyncd.conf должен быть расположен в папке /etc/

mv rsyncd.conf rsyncd.oldделаем так на всякий случай, вдруг файл такой уже есть.

cat << EOF >> /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid

motd file = /etc/rsync/rsyncd.motd

uid = root
gid = root
max connection = 4

auth users = backup
secrets file = /etc/rsync/rsyncd.scrt

[bkpl]
path = /
read only = yes
host allow = ssh.bkp177.backupland.com
EOF

Применяем настройки
для Centos 7systemctl restart rsyncd.serviceдля Centos 6service xinetd restart

Если у вас на сервере установлен Firewall вам нужно разрешить входящие соединение на порт 873

Описание полей файла конфигурации rsyncd.conf

Текст конфигурации:
pid file = /var/run/rsyncd.pid#pid файл хранящий ID процесса
motd file = /usr/local/etc/rsyncd.motd#файл приветствия
uid = root#работа под правами этого пользователя*
gid = wheel#работа с правами этой группы*
max connection = 4#кол-во коннектов со стороны сервиса
auth users = backup#логин пользователя для доступа извне
secrets file = /usr/local/etc/rsyncd.scrt#файл с логином и паролем для доступа извне
[bkpl]#секция, в которой описано что можно делать
path = /#Какую папку можно бэкапить
read only = yes#Разрешено только бэкапить, восстановить нельзя будет
host allow = ssh.bkp177.backupland.com#сервер, где будут храниться резервные копии

Внимание! Вместо ssh.bkp177.backupland.com необходимо указать тот хост, который Вы получили при регистрации. Аналогично, путь /usr/local/etc/ зависит от того, какая установлена операционная система.

* Если вы не собираетесь резервировать весь сервер, тогда права root вы можете заменить на права пользователя, файлы которого вы будете бэкапить.