Rsync (Remote Synchronization) — Синхронизирует файлы и каталогов с минимальными затратами трафика.
Важным отличием rsync от другого похожего софта является то, что синхронизация осуществляется одним потоком в каждом направлении.
Простым языком:
Rsync Допустим у нас есть отдельный сервер куда будут сливаться бэкап .
С сервера куда мы хотим бэкапы сливать, запускается скрипт/команда rsync с параметрами, которая соединяется с удаленными тачками в сети.
На всех тачках должнабыть запущенна и работать Rsync служба, в конфигурационном файле мы прописали какие именно директории нам нужно синхронизировать.
Установим rsync
yum install -y rsync
Rsync мы будем запускать через xinitd
Суперсервер xinetd пришел на замену устаревшему серверу inetd. Любой сервер, обрабатывающий запросы, обычно может работать в двух режимах.
Если у нас не установлен xinitd. то установим его.
# yum install -y xinetd
Отредактируем конфиг xinetd.
# nano /etc/xinetd.d/rsync изменим параметр disable = yes на disable = no
Что бы наши изменения вступили в силу мы должны перезагрузить демон xinetd
# /etc/init.d/xinetd restart
Добавим в автозагрузку
# chkconfig xinetd on
теперь нам нужно проверить слушаеться ли xinitd
# netstat -lnpt | grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3210/xinetd
Теперь приступим к конфигурации rsync.
# nano /etc/rsyncd.conf uid = nobody gid = nobody use chroot = no max connections = 10 pid file = /var/run/rsyncd.pid motd file = /etc/rsync.motd log file = /var/log/rsyncd.log transfer logging = true [share] path = /mnt/share/users comment = For backups from local servers uid = nobody gid = nobody hosts allow = 10.5.2.0/24 hosts deny = * [site] path = /var/www/localhost/likeunix.ru/ uid = root read only = yes list = yes comment = Site directory hosts allow = 10.5.2.0/24 auth users = bagas secrets file = /etc/rsyncd.scrt
такс разберем наш конфиг.
uid/gid — Имена групп, можно указать root, но это не эстэтично.
use chroot — запуск rsync в chroot, для большей безопасности.
log file — Файл логов.
transfer logging — Писать в лог о скачиваемых файлах
max connections — Максимальное число конектов
[share] — название блока
path — Путь что сохраняем.
hosts allow — Указываем список сетей или IP адресов, с которых разрешен доступ к шаре:(сети указываем через пробел)
hosts deny — Каие сети IP адреса запрещены
secrets file — Файл с имена пользователей и паролей.
list — Разрешить просмотр файлов.
auth users — список пользователей rsyncd, которым разрешен доступ к шаре (через пробел).
comment — Коментария к шаре.
read only — режим только чтение
Создадим файл приветствия.
# nano /etc/rsync.motd ################################ Hello from rsync server Server Adress : 10.5.2.0 ################################
Файл приветствия можете свой создать.
Так теперь файл с паролями, так как они у нас будут храниться в открытом виде, надо поставить на них жесткие права
# chown root:root /etc/rsyncd.scrt && chmod 600 /etc/rsyncd.scrt
Выглядит он так.
# nano /etc/rsyncd.scrt bagas:passwod shuga:password
Проверим.
#rsync rsync://[email protected]/
Теперь сама команда копирования.
# rsync -uroghtp –progress –delete-after –password-file=/etc/rsyncd.scrt [email protected]::backup /mnt/share_25/
-e ssh Использовать ssh для связи с сервером.
-v, –verbose увеличение отладочной информации, если вы планируете запускать по расписанию то этот пункт вам не нужен.
-u, –update пропускать обновление файлов.
-r, –recursive разрешаем рекурсию в директориях
-o, –owner сохраняем владельца (только под root)
-g, –group сохраняем группу
-h, –human-readable вывод цифр в читаемом виде (Кб, Мб, Гб)
-t, –times сохраняем дату изменения
-p, –perms сохраняем права доступа
–delete-after удалить после синхронизации из директории назначения файлы,отсутствующие в исходной диретокрии.
–password-file Указываем путь, где находится файл с паролем.
-z Упаковываем поток с помощью gzip.
Оригинал likeunix.ru/centos-rsync-backup/