cvsup

とりあえず手動で、6.1-Release の src をとってきておく.
ミソは fastest_cvsup を使うところ.

DESCRIPTION


Displays the 3 fastest CVSup servers in user specified countries. It can just return the fastest for use in automated shell scripts.


It uses Time::HiRes for timings and IO::Socket::INET to make a socket connection to the target server, the server response is taken notice of. Unlike some shell scripts it does not rely on 'pings' to measure network speed.

とのことで ping をあてにしてないらしいのだが、なんのスピードをみているのかしら?というか、perlスクリプトなのだね.


念のために、cvsupサーバの負荷状態もみたりする.

$ nslookup cvsup6.jp.FreeBSD.org
...snip...
Non-authoritative answer:
cvsup6.jp.FreeBSD.org   canonical name = cvsup-tk.sakura.ad.jp.
Name:   cvsup-tk.sakura.ad.jp
...snip...
$ nslookup cvsup.jp.FreeBSD.org
...snip...
Non-authoritative answer:
cvsup.jp.FreeBSD.org    canonical name = cvsup.sakura.ad.jp.
Name:   cvsup.sakura.ad.jp
...snip...


さてさて、supfile はこんなかんじ.とってくるのは、src-all と doc-all で、ports-all は portsnap を使用中.


cvsup-mirror が /usr/local/etc/cvsup を使うので変更


/usr/local/etc/cvsup-local/cvs-supfile
/usr/local/etc/cvsup/cvs-supfile

*default host=cvsup.jp.freebsd.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup-local
*default release=cvs tag=RELENG_6_1
*default delete use-rel-suffix
*default compress

src-all
*default tag=.
doc-all
#ports-all


そいでもって、実際の cvsup は、こちらの shellスクリプト を使用する.


/usr/local/etc/cvsup-local/cvsup-fast
/usr/local/etc/cvsup/cvsup-fast

#!/bin/sh
if SERVER=`fastest_cvsup -q -c jp`
then
echo "Running cvsup"
cvsup -L2 -h $SERVER /usr/local/etc/cvsup-local/cvs-supfile
else
echo "There's a problem" 1>&2
exit 1
fi