#!/bin/sh # # $Id: up1date,v 1.2 2003/02/26 13:06:13 nkmr Exp $ # # written by Yasuhide NAKAMURA # # http://openlab.jp/up1date/ # # usage: # up1date advice_id # example: # up1date RHSA-2002-197 # ## ----------------------------------------------------------- ## version & architechre ver=`cat /etc/redhat-release | awk '{print $5}'` #ver="7.1" #ver="7.2" #ver="7.3" #ver="8.0" arch="i386 noarch" #arch="i386 noarch src i586 i686 athlon alpha ia64" ## RingServers ringserver=www.ring.gr.jp # DNS roundrobin #ringserver=www.t.ring.gr.jp # TENBIN: automatic server selector by distance #ringserver=www.dnsbalance.ring.gr.jp # DNS Balance: automatic server selector by crowdedness #ringserver=aist.ring.gr.jp #ringserver=ring.airnet.ne.jp #ringserver=ring.asahi-net.or.jp #ringserver=ring.astem.or.jp #ringserver=ring.atr.co.jp #ringserver=ring.crl.go.jp #ringserver=ring.csi.ad.jp #ringserver=ring.data-hotel.net #ringserver=ring.dcs.pref.mie.jp #ringserver=ring.edogawa-u.ac.jp #ringserver=ring.exp.fujixerox.co.jp #ringserver=ring.hosei.ac.jp #ringserver=ring.htcn.ne.jp #ringserver=ring.ip-kyoto.ad.jp #ringserver=ring.iwate-pu.ac.jp #ringserver=ring.jah.ne.jp #ringserver=ring.k-opti.com #ringserver=ring.nihon-u.ac.jp #ringserver=ring.ocn.ad.jp #ringserver=ring.pwd.ne.jp #ringserver=ring.qgpop.net #ringserver=ring.riken.go.jp #ringserver=ring.sbp-shimane.net #ringserver=ring.shibaura-it.ac.jp #ringserver=ring.shizuoka.ac.jp #ringserver=ring.so-net.ne.jp #ringserver=ring.tains.tohoku.ac.jp #ringserver=ring.toyama-ix.net #ringserver=ring.toyama-u.ac.jp #ringserver=ring.wakwak.com #ringserver=ring.yamanashi.ac.jp ## remote path rpmlist_site=http://openlab.jp/up1date/errata/$ver redhatdir=/archives/linux/RedHat/redhat/linux/updates/$ver/en/os download_site=http://$ringserver$redhatdir ## local path local_path=~/updates ## wget wget="/usr/bin/wget" #http_proxy=localhost:3128 #wget="/usr/bin/wget --proxy=on" ## ----------------------------------------------------------- echo "======================================================================" echo "up1date start at `LANG=c date`" if [ ! -d $local_path ] ; then echo "*** ABORT: no such directory $local_path" exit 1 fi for param in $* ; do id=`echo $param | sed -e 's/:/-/'` $wget -q --delete-after $rpmlist_site/$id if [ $? -ne 0 ] ; then echo "*** SKIP: not found $rpmlist_site/$id" continue fi if [ ! -d $local_path/$ver/$id ] ; then mkdir -p $local_path/$ver/$id 2>/dev/null fi echo "----------------------------------------------------------------------" echo "id: $id" echo "version: $ver" echo "arch: $arch" echo "RingServer: $ringserver" echo "remote path: $redhatdir" echo "local path: $local_path/$ver/$id" echo cd $local_path/$ver/$id for cpu in $arch ; do $wget -q -N $rpmlist_site/$id/$id.$cpu.rpmlist 2>/dev/null || continue; echo "[$cpu]" cat $id.$cpu.rpmlist | while read hash file ; do $wget -q -N $download_site/$cpu/$file if [ $? -eq 0 ] && [ $hash = "`md5sum $file | awk '{print $1}'`" ] ; then printf "%-50s\t[ OK ]\n" $file else printf "%-50s\t[*NG*]\n" $file fi done done echo echo "rpm --test -Fvh *.rpm # just go through the motions." rpm --test -Fvh *.rpm done echo "----------------------------------------------------------------------" echo "up1date end at `LANG=c date`"