rsync

Настройка rsync-сервера и rsync-клиента для резервного копирования в ALTLinux

Это очень маленькая заметка, о том как настроить резервное копирование, в моем случае web-проекта. Рекомендую погуглить и найти более полную информацию о rsync, потому-что тут будет минимум инфы, только пример настройки.

Устанавливаем rsync

# apt-get insall rsync-server

В ALTLinux rsync работает через xinetd, поэтому придется немного покрутить его.

Нужно закомментировать строку rlimit_as, а так же сказать disable = no в файле:

[root@node1 xinetd.d]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server,
#       as it allows crc checksumming etc.
service rsync
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = root
        nice            = 10
#       rlimit_as       = 16M
        server          = /usr/bin/rsync
        server_args     = --daemon
}

С настроенным по умолчанию rlimit_as rsync у меня отключал клиента с ошибкой:

2012/08/20 06:13:57 [5320] rsync: connection unexpectedly closed (2589 bytes received so far) [generator]
2012/08/20 06:13:57 [5320] rsync error: error in rsync protocol data stream (code 12) at io.c(605) [generator=3
.0.9

Но этого мало, далее правим /etc/xinetd.conf

Тут нам нужно закомментировать only_from = 127.0.0.1 или настроить параметры как-то по своему усмотрению.

#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
    log_type = SYSLOG authpriv info
    log_on_success = PID HOST DURATION
    log_on_failure = HOST
    instances = 100
    per_source = 5
#   only_from = 127.0.0.1
}
includedir /etc/xinetd.d

После чего запустить xinetd демон

# service xinetd start

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

# chkconfig xinetd on

Далее настраиваем сам rsync:

В самом файле конфигурации /etc/rsyncd.conf по умолчанию все закомментировано. Я туда добавил следующие строки:

[backup]
comment = My backup
path = /var/backup
use chroot = true
uid = root
gid = root
log file = /var/log/rsyncd/rsync-backup.log
read only = false
write only = false
hosts allow =  192.168.1.2
hosts deny = *
transfer logging = false

192.168.1.2 - это ip с которого разрешено подключение, можно указать несколько хостов через пробел.

Теперь можно проверить работает ли сервис:

[root@node1 etc]# rsync rsync://localhost
backup          My backup

Ну вот все хорошо, сервис отвечает. Попробуем с клиента что-нибудь скопировать.

rsync -auv /var/www/html/temp/ rsync://ip.add.re.ss/backup

Подробнее про опции читайте в доке, скажу лишь, что "-u" - это не изменять файлы на приемнике, если тут есть такой же файл и он более свежий, "-v" - это verbose, т.е. более подробный вывод, "-a" - задает кучу популярных параметров, чаще всего походу так и вызывают rsync.

Далее идет источник и приемник, в нашем случае, мы отправляем файлы с /var/www/html/temp на сервер rsync, который настроили выше. А может быть и наоборот, т.е. можно скачивать с сервера, читайте доки.

Если все удачно, то на консоли вы увидите, что-то похожее:

sending incremental file list
какой-то файл ...
какой-то файл ...
какой-то файл ...
какой-то файл ...
sent 391285 bytes  received 26703 bytes  92886.22 bytes/sec

Далее смотрим на сервере в папку /var/backup и находим наши файлы.

На этом все.