Заметки о работе с ОС FreeBSD. Статьи об установке и настройке ПО для FreeBSD.

14 августа 2013 г.

Синхронизация двух каталогов при помощи rsync на FreeBSD

Для синхронизации каталогов между двумя серверами FreeBSD будем использовать rsync.

На обоих серверах ставим rsync из портов.

[root@office-rsync-server ~]# cd /usr/ports/net/rsync

Я использую следующие опции:
[root@office-rsync-server /usr/ports/net/rsync]# make showconfig
===> The following configuration options are available for rsync-3.0.9_3:
     ACL=off: Add backward-compatibility for the --acls option
     ATIMES=off: Preserve access times, adds --atimes
     DOCS=on: Build and/or install documentation
     FLAGS=off: File system flags support patch, adds --fileflags
     ICONV=on: Encoding conversion support via iconv
     POPT_PORT=off: Use popt from devel/popt instead of bundled one
     RENAMED=off: Add support for renamed file detection
     SSH=on: Use SSH instead of RSH
     TIMELIMIT=on: Time limit patch
===> Use 'make config' to modify these settings

[root@office-rsync-server /usr/ports/net/rsync]# make install clean

На сервере, с которого будем синхронизировать файлы:
[root@office-rsync-server ~]# ee /usr/local/etc/rsyncd.conf

Редактируем файл rsyncd.conf до следующего состояния:
pid file = /var/run/rsyncd.pid
uid = root
gid = wheel
use chroot = yes
max connections = 10
syslog facility = local5
[wrk]
        path = /wrk
        comment = Working files
        hosts allow = 192.168.249.250, 192.168.249.251

В rc.conf разрешаем запуск rsyncd:
rsyncd_enable="YES"

На сервере, который будет в роли клиента создаем shell-скрипт следующего содержания:
[root@office-rsync-client ~]# ee /root/sync_files.sh
#!/bin/sh
rsync -qrul --delete-excluded 192.168.249.50::wrk /wrk
, где:
-q - "тихий режим", не выводить никакие сообщения об ошибках
-r - рекурсивный режим, т.е. копировать директорию и поддиректории
-u - пропускать более свежие на клиенте файлы
-l - копировать симлинки (symlinks) как симлинки
--delete-excluded - удалять файлы, если они удалены на сервере

Этот скрипт можно прописать в cron для периодического запуска.

Всё.

Комментариев нет: