Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  named 9.7.0
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  Простой факс-сервер mgetty+sendfax
  SQUID-MultiCpuSystem
  vsftpd + system users
  Syslog server
  Температура в серверной
  Nagios+Digitemp
  Avast! FreeBSD
  Настройка git+gitosis
  Firefox SyncServer
  Scan+Print server FreeBSD 9
  proftpd,pgsql,web
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> программы —> cvsupd

cvsupd - зеркало обновлений

Автор: Abigor.


У меня в подчинении ранее находилось несколько серверов под управлением FreeBSD различных веток развития 5.x и 6.x. Порты и исходные тексты я обновлял через cvsup. Все было хорошо пока в соседнем отделе админ то же свои сервера не стал обновлять. После этого было принято решение поднять локальный репозиторий обновлений. В портах был найден cvsup-mirror, для простого создания зеркала.
Что ж, начнем. Ставить будем из портов.

[root@webdes ~]# cd /usr/ports/
[root@webdes ports]# make search name=cvsup-mirror
Port:   cvsup-mirror-1.3_5
Path:   /usr/ports/net/cvsup-mirror
Info:   A kit for easily setting up a FreeBSD mirror site using CVSup
Maint:  jdp@FreeBSD.org
B-deps:
R-deps: cvsup-without-gui-16.1h_2
WWW:    http://www.cvsup.org/

[root@webdes ports]# cd /usr/ports/net/cvsup-mirror
[root@webdes cvsup-mirror]# make

Здесь установщик задаст пару вопросов, на которые можно отвечать [y]. Нас интересуют только вот эти вопросы:
Master site for your updates [cvsup-master.freebsd.org]? cvsup4.ru.FreeBSD.org
# что принимать за родительский сайт. То есть, от куда все тянуть.
How many hours between updates of your files [1]?
# как часто запускать обновления того, что мы стянули
Do you wish to mirror the main source repository [y]?
# это то сто нас интересует, это исходные тексты системы и порты.
Where would you like to put it [/home/ncvs]? /var/cvsupd
# задаем, где будут это все храниться
Do you wish to mirror the installed World Wide Web data [y]? n
# предлагает сделать зеркало сайта http://freebsd.org
Do you wish to mirror the GNATS bug tracking database [y]? n
# стянуть базу о багах
Do you wish to mirror the mailing list archive [y]? n
# mail рассылки

Дальше ставим.
[root@webdes cvsup-mirror]# make install clean

Там будут лишь подтверждения о создании юзверей и групп. Внесение изменений в /etc/crontab, /etc/newsyslog.conf и /etc/syslog.conf. Так что везде отвечаем [y] и ставим.
дальше не в какой конфигурации сервер не нуждается, Первое скачивание должно запуститься автоматически. Проверить это можно так.
[root@webdes cvsup]# /usr/local/etc/cvsup/update.sh
CVSup update begins at 2006-10-18 18:37:22
lockf: /var/spool/lock/cvsup.lock: already locked
CVSup update ends at 2006-10-18 18:37:22
[root@webdes cvsup]# ps ax |grep cvsup
17761  ??  Is     0:00,00 /bin/sh -c /usr/local/etc/cvsup/update.sh
17762  ??  I      0:00,00 /bin/sh /usr/local/etc/cvsup/update.sh
17765  ??  I      0:00,00 lockf -t 0 /var/spool/lock/cvsup.lock /bin/sh
17767  ??  I      0:00,01 su -f -m cvsupin -c exec env HOME=/home/cvsupin cvsup -1gL 
 1 -b /usr/local/etc/cvsup -c sup.client  -h cvsup4.ru.
17768  ??  D      0:03,69 cvsup -1gL 1 -b /usr/local/etc/cvsup -c sup.client -h 
 cvsup4.ru.freebsd.org /usr/local/etc/cvsup/supfile
17814  p3  S+     0:00,00 grep cvsup

Как видите процесс пошел, осталось дождаться, когда выльется чуть больше 3 гигов.
После того как скрипт /usr/local/etc/cvsup/update.sh закончит свою работу, в файле лога /var/log/cvsup.log должен появиться текст следующего содержания:
[root@webdes cvsup]# cat /var/log/cvsup.log
Updating from cvsup4.ru.freebsd.org
Connected to cvsup4.ru.freebsd.org
Updating collection cvs-all/cvs
 Append to CVSROOT-src/commitlogs/bin
 Append to CVSROOT-src/commitlogs/sys
 Edit src/bin/rm/rm.c,v
 Edit src/sys/netgraph/ng_socket.c,v
-------------------------------------------
SKIP
-------------------------------------------
Skipping collection gnats/current
Updating collection www/current
Skipping collection mail-archive/current
Updating collection distrib/self
Finished successfully
CVSup update ends at 2006-10-18 17:57:05
CVSup update begins at 2006-10-18 18:37:00
[root@webdes cvsup]#

Теперь запустим сервер обновлений:
[root@webdes ~]# echo 'cvsupd_enable="YES"' >> /etc/rc.conf
[root@webdes ~]# /usr/local/etc/rc.d/cvsupd rcvar
# cvsupd
$cvsupd_enable=YES
[root@webdes ~]# /usr/local/etc/rc.d/cvsupd start
Starting cvsupd.
[root@webdes ~]# /usr/local/etc/rc.d/cvsupd status
cvsupd is running as pid 18000.
[root@webdes log]# sockstat -4 -p 5999
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
cvsup    cvsupd     18000 3  tcp4   *:5999                *:*

Теперь можно проверить работу нашего сервера обновлений =)
[root@webdes etc]# cvsup -L 1 /usr/local/etc/cvsup.conf
Connected to 127.0.0.1
Updating collection src-all/cvs
Updating collection ports-all/cvs
 Edit ports/UPDATING
 Edit ports/databases/evolution-data-server/Makefile
 Checkout ports/databases/evolution-data-server/files/patch-camel_camel-object.c
 Edit ports/deskutils/tomboy/Makefile
 Checkout ports/deskutils/tomboy/files/patch-Tomboy_Utils.cs
 Edit ports/devel/gauche-readline/Makefile
 Edit ports/editors/openoffice.org-2.0/Makefile
 Edit ports/editors/openoffice.org-2.0/distinfo
 Edit ports/editors/openoffice.org-2.0/pkg-descr
 Edit ports/editors/openoffice.org-2.0/pkg-plist
 Edit ports/finance/gnucash/Makefile
 Edit ports/games/alephone/Makefile
 Edit ports/irc/dancer/Makefile
 Edit ports/misc/kdehier/Makefile
 Edit ports/misc/kdehier/files/dirlist
 Edit ports/misc/kdehier/pkg-plist
 Edit ports/net/rboot/Makefile
 Edit ports/net/rboot/distinfo
 Edit ports/net/rboot/pkg-descr
 Edit ports/x11/XFree86-4-clients/Makefile
 Edit ports/x11/kdebase3/Makefile
 Edit ports/x11/kdelibs3/Makefile
 Edit ports/x11/kdelibs3/pkg-plist
 Edit ports/x11-toolkits/py-gtk2/Makefile
 Edit ports/x11-toolkits/py-gtk2/distinfo
 Edit ports/x11-wm/afterstep-stable/Makefile
Updating collection ports-base/cvs
Finished successfully
[root@webdes etc]#

В это время вот вывод sockstat:
[root@webdes log]# sockstat -4 -p 5999
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
cvsup    cvsupd     18394 7  tcp4   127.0.0.1:5999        127.0.0.1:55764
root     cvsup      18393 6  tcp4   127.0.0.1:55764       127.0.0.1:5999
cvsup    cvsupd     18000 3  tcp4   *:5999                *:*

Вот и все, у нас теперь есть свой сервер обновлений.



размещено: 2006-10-19,
последнее обновление: 2006-10-19,
автор: Abigor

оценить статью:

vlad11, 2006-10-19 в 21:00:37

Запускать надо
/usr/local/etc/cvsup/update.sh &

Abigor, 2006-10-20 в 7:34:50

Не обязательно

vlad11, 2006-10-23 в 18:15:05

В статье не указано, как ставить ограничения на количество сессий с одного IP, а также как открывать доступ только "дружественным" сетям для апгрейда.
Также в конфиге придется немного побороться с неправильным ресолвингом имени cvsup-сервера.

Abigor, 2006-10-24 в 6:49:23

>В статье не указано, как ставить ограничения на количество >сессий с одного IP, а также как открывать доступ только >"дружественным" сетям для апгрейда.
у меня небыло в этом необходимости, внутри локальной сети прятоться не от кого, да  из инета можно всем обновляться с меня.

Дмитрий, 2006-12-26 в 16:01:26

Отличная статья! Большое спасибо автору! :)

Гол, 2007-01-18 в 16:56:25

Просто так апдейт не запустился. Потребовалось кое-что добавить.
Нужна авторизация для узла freefall.freebsd.org, это делается вот так:
Вводим команду

cvpasswd <наш_email> freefall.freebsd.org

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

Send this line to the server administrator at freefall.freebsd.org:
------------------------------------------------------------
<наш_email>:<md5hash>::
------------------------------------------------------------
Be sure to send it using a secure channel!

Add this line to your file "$HOME/.cvsup/auth", replacing "XXX"
with the password you typed in:
------------------------------------------------------------
freefall.freebsd.org:<наш_email>:XXX:
------------------------------------------------------------
Make sure the file is readable and writable only by you!

Т.е. копируем строку
Бнаш_email:<MD5hash>::
и высылаем её на почтовый адрес cvsup-master@FreeBSD.org

Должен прийти ответ что нас добавили.
Далее копируем строку
freefall.freebsd.org:<наш_email>:XXX:
заменив XXX на введённый пароль в файл
"$HOME/.cvsup/auth"
, т.е. у меня это в /home/cvsupin/.cvsup/auth

Вроде всё. Ждёмс ответа от freebsd.org

AlkoGekS, 2007-08-09 в 0:54:51

Вопрос!
Как часто запускаются сами обновления репозитория?
Или они вообще не запускаются и приходиться самому постоянно юзать /usr/local/etc/cvsup/update.sh ?

Kolesya, 2007-09-17 в 12:28:53

to AlkoGekS
посмотри /etc/crontab :)

Al, 2007-10-30 в 19:04:27

бывает,что обновляться с зеркала получается несразу.Надо подождать или переставить....У меня не заработало-сначала переставил-потом подождал..

Abigor, 2007-10-31 в 8:47:00

[root@webdes abigor]# grep update /etc/crontab
51      *       *       *       *       root    /usr/local/etc/cvsup/update.sh
[root@webdes abigor]#
это добавляется при установе

artem, 2008-01-30 в 17:19:43

1 У меня не пашет пишет
./update.sh
./update.sh: Cannot determine the PREFIX

2 как сделать зеркало портов без исходников а то 2 гига это много качать
3 как сделать зеркало портов и исодников чтоб тока собирать ядро
4 а разве нельзя использовать существующее дерево портов надо его снова выкачивать для зеркала?

Abigor, 2008-01-31 в 4:22:31

Запускать вот так надо
[root@webdes cvsup]# /usr/local/etc/cvsup/update.sh
-----------------------------------
Разделения на src и ports нету, они идут вмести
-----------------------------------
Использовать /usr/ports нельзя, в cvs они как бы в diff  лежат.
-----------------------------------
Только для ядра не получится

Abigor, 2008-01-31 в 4:23:25

И выкачивать придется вот столько
[abigor@webdes ~]$ du -sh /var/files/cvsupd
3,4G    /var/files/cvsupd
[abigor@webdes ~]$

artem, 2008-01-31 в 12:18:07

1 спасибо так пошло тока не пойму в чем отличие?
2 а если как-то файл /usr/local/etc/cvsup/supfile
подправить на выкачку тока портов?
3 По поводу прав доступа согласно man cvsupd
прописать /usr/local/etc/cvsup/cvsupd.acces :
-10.0.0/24    9 # разрешить 9 коннектов на сетку
-10.0.0/24/32 3 #разрешить по 3 коннекта на хост в этой сети

Abigor, 2008-02-01 в 2:59:26

очень плохо, что не понимаешь, загляни в скрипт, он перед запуском определяет переменную prefix, если она не равна /usr/local/etc/cvsup то скрипт стреляется.

Morty, 2008-03-31 в 14:05:17

класный порт, сделал себе зеркало исходников, портов, +сам сайт, жаль только при поиске по портам перебрасывает на офф, а не на зеркалируемом сайте а так - супер

Leo, 2008-08-11 в 4:59:19

Чтобы чуть меньше качать и обновлять можно выкинуть лишние "языки"
%cat /usr/local/etc/cvsup/sup.client/refuse
doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es*
doc/fr_*
doc/hu_*
doc/id_*
doc/it_*
doc/ja*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ro_*
doc/sr_*
doc/tr_*
doc/zh*
ports/arabic*
ports/chinese*
ports/french*
ports/german*
ports/hebrew*
ports/hungarian*
ports/japanese*
ports/korean*
ports/polish*
ports/portuguese*
ports/ukrainian*
ports/vietnamese*

kkk, 2009-08-13 в 13:31:08

И намного меньше получится? Как ещё можно уменьшить объём скачиваемого? Просто уж 3 гига как-то многовато.

abigor, 2009-08-13 в 14:32:12

А вы возможно не там ищите экономии. Вот у меня больше 10 серверов с FreeBSD и если каждый будет хоть раз в неделю будет обновлять ports и раз в месяц src до трафика получается куда больше. Чем один раз стянуть 3,5 гига. А далее лишь изменения. Потом эти все сервера тянут все с внутреннего cvsup зеркала. Вот тут присутствует экономия. А если сервера только два скажем. То смысла нету.

Genas2, 2009-11-26 в 20:39:14

Было бы интересно посмотреть листинг /usr/local/etc/cvsup.conf (:

Al, 2009-11-27 в 8:20:50

>Было бы интересно посмотреть листинг /usr/local/etc/cvsup.conf (:
А ты сначала сам этот файл найди...


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 49 человек
За сегодня было
188 показов,
58 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1297 секунд
Из них PHP: 56%; SQL: 44%; Число SQL-запросов: 77 шт.
Исходный размер: 148620; Сжатая: 23059