HOWTO Локальный сервер Rsync

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Официальное описание настройки зеркал Gentoo Linux rsync

[http://www.gentoo.org/doc/en/rsync.xml содержит официальную версию описания настройки зеркала Gentoo Linux rsync.

[править] Введение

Если в вашей локальной сети несколько машин под управлением Gentoo, то разумно иметь свой собственный сервер синхронизации дерева портежей. Во-первых синхронизация по локальной сети проходит быстрее, во-вторых это экономит внешний интернет-трафик, т.к. с внешним миром синхронизируется только сервер-зеркало.

Все что нужно это настроить файл rsyncd.conf. Пакет rsync установлен в каждой копии gentoo и является неотъемлимой частью системы.

[править] Редактируем файлы

По-умолчанию файлом настроек является /etc/rsyncd.conf, но практичнее (как мне кажется) держать настройки в отдельном каталоге /etc/rsync/. Для изменения пути настроек по-умолчанию редактируем

Файл: /etc/conf.d/rsyncd
RSYNC_OPTS="--config /etc/rsync/rsyncd.conf --address 192.168.x.y"

Где вместо 192.168.x.y необходимо указать настоящий IP-адрес настраиваемой машины.

(Разумеется можно оставить пути к файлам и по-умолчанию, т.е. вносить изменения в /etc/rsyncd.conf и не изменять /etc/conf.d/rsyncd.)

После изменения пути к файлу настроек создаем каталог /etc/rsync.

mkdir /etc/rsync

Создаем файл со следующего содержания

Файл: /etc/rsync/rsyncd.conf
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/rsync/files/rsyncd.conf,v 1.3 2004/07/15 00:11:37 agriffis Exp $

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid

uid = nobody
gid = nobody
use chroot = yes
read only = yes

#limit access to private LANs
hosts allow=192.168.0.0/255.255.0.0 10.0.0.0/255.0.0.0 172.16.0.0/255.240.0.0
hosts deny=*

max connections = 5
#motd file = /etc/rsync/rsyncd.motd

#This will give you a separate log file
#log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[gentoo-portage]
#modern versions of portage use this entry
path = /usr/portage
comment = Gentoo Linux Portage tree mirror
exclude = /distfiles /packages /local

Можно включить текст приветствия. Для этого раскомментировать строку motd в rsyncd.conf. И создать файл /etc/rsync/rsyncd.motd (motd - это message of the day).

Файл: /etc/rsync/rsyncd.motd
 -=-=-=-=-=-=-=-=-=-
 Preved medved!!
 -=-=-=-=-=-=-=-=-=-


Запускаем демона и устанавливаем его автозапуск.

/etc/init.d/rsyncd start
rc-update add rsyncd default

Сервер запущен, теперь необходимо указать его на машинах-клиентах локальной сети. Делается это редактированием /etc/make.conf. Выглядит примерно так:

Файл: /etc/make.conf
#SYNC="rsync://rsync.gentoo.org/gentoo-portage" 
SYNC="rsync://192.168.0.100/gentoo-portage"

Где 192.168.0.100 это IP-адрес вашего зеркала.

Запускаем на клиенте

emerge --sync

Видим строчки приветствия. Ура, ура, делимся радостью с близкими.

[править] Firewall

Если необходимо запустить демона rsync за файрволом не забудьте открыть порт 873 tcp.

 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

[править] Использование XINETD вместо запуска rsync при загрузке

Если rsync-демон не будет сильно нагружен (у меня в сети еще две машины с gentoo), то нет смысла в постоянно запущенном процессе. Вместо этого можно использовать xinetd, который будет запускать rsync при первой необходимости. Если устраивает такой вариант, то можно пропустить запуск демона '/etc/init.d/rsyncd start', а так же не добавлять его в автозагрузку 'rc-update add rsyncd default'. Xinetd сам обо всем позаботится.

1. Собираем rsync с поддержкой xinetd:

echo "net-misc/rsync xinetd" >> /etc/portage/package.use
emerge -Dav rsync

2. Редактируем /etc/xinetd.d/rsyncd

Файл: /etc/xinetd.d/rsyncd
        service rsync
        {
               socket_type = stream
               protocol    = tcp
               wait        = no
               user        = root
               server      = /usr/bin/rsync
               server_args = --config /etc/rsync/rsyncd.conf --address 192.168.x.y --daemon
               disable     = no
        }

где 192.168.x.y адрес самого зеркала rsync

3. Редактируем /etc/xinetd.conf По-умолчанию в параметре only_from стоит "localhost". Необходимо добавить имена или IP машин, которые будут иметь доступ к серверу или вообще закоментировать эту строчку (иначе xinetd будет ОТБРАСЫВАТЬ попытки соединения).

4. Запускаем xinetd:

/etc/init.d/xinetd start

5. Добавляем xinetd в автозагрузку:

rc-update add xinetd default

[править] Автоматизация синхронизации сервера

Сам сервер-зеркало должен переодически синхронизироваться с внешним миром, используем для этого cron.

(У меня стоит vixie-cron, для других разновидностей cron настройка может отличаться)

В файл /etc/crontab добавляем строку

Файл: /etc/crontab
15 3 * * * /usr/bin/emerge --sync

Теперь сервер будет сихронизироваться каждый день в 03:15

Кстати, похожую настройку можно провернуть и для остальных машин сети, только выставить время выполнения минут на 10 больше.

[править] Origin

[править] See Also

Личные инструменты