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
- HOWTO:Local Rsync Mirror
- Posted by flybynite, Jun 01, 2004
- Перевод: Злые тапки
- Original Gentoo Forums Post
