Here's a bash script I found looking for something that would poll (ping) Mandrake mirrors and return the result rated by speed like apt-netselect does in Debian. I hacked it up a bit to make it work with the mirror list (README_mirrors) and I'm no guru so.....
The author has a version 2 that is easy to find on google but this one worked for me. The mirror list is below the script (130 lines) - I copied the Mandrake web page and cut it up in a text editor (in Mandrake 9.2 :-) ).
-- pn
###########################################
#!/bin/sh
# sort_mirrors_by_speed by A.Mennucci Nov 97 # # this program is subject to the # GNU general public license
#
# this program will scan the file in $1 using
# grep "\.[a-zA-Z]*:" $1 | awk '{print $1}'
# to find mirror site host names.
#
# the string before the : character is considered to be a
# mirror site host name
#
# Mirror sites are pinged and statistics are collected and sorted
#if [ "$1" = "-h" -o "$1" = "--help" ] ; then
echo Usage: $0 mirrorfile
echo " Argument must be the file README.mirrors "
echo " containing a list of debian mirrors."
echo " This program will ping all mirrors with 4 packets"
echo " to test their speed and reliability, and then will "
echo " sort the result, put it in file mirrors_by_speed and show the best."
exit 0
fi
tmpdir=~/tmp
# warning: using the directory /tmp and running this script # as root is a potential security problem
if ! [ -w $tmpdir ] ; then echo $0 ERROR dir $tmpdir is not writable echo please create it if it does not exist exit 1 fi
if [ ! -r "$1" -o "$1" = "" ] ; then echo $0 ERROR Give as argument the file README.mirrors echo " containing a list of debian mirrors" exit 1 fi if [ -r mirrors_by_speed ] ; then echo $0 ERROR the file mirrors_by_speed already exists exit 1 fi
#touch $tmpdir/mirrors_by_speed
n=0
echo -n "Testing "
grep "[a-zA-Z]" $1 | awk '{print $1}' | wc --lines | tr "\n" " "
echo " debian mirror sites for speed and reliability."
echo -n "Tests done : "#for i in ` grep "[a-zA-Z]*:" $1 | awk '{print $1}' ` ;
for i in `grep "[a-z]*" $1 | cut -d"/" -f 1 | awk '{print $1}' ` ;
do
n=`expr $n + 1 `
(
h=$n
#echo TEST $h for $i
#if ping -c 6 `echo "$i" | cut -d: -f 1` > $tmpdir/ping$$_$h;
if ping -c 6 `echo "$i"` > $tmpdir/ping$$_$h;
then grep "rtt" $tmpdir/ping$$_$h | cut -d"/" -f 5 | tr "\n" " " > $tmpdir/mirrors_by_speed_$h
echo -n " ms AVERAGE ," >> $tmpdir/mirrors_by_speed_$h
grep "received" $tmpdir/ping$$_$h | cut -d"," -f 3 | tr "\n" "," >> $tmpdir/mirrors_by_speed_$h
echo " SITE $i" >> $tmpdir/mirrors_by_speed_$h
#cat $tmpdir/mirrors_by_speed_$h
cat $tmpdir/mirrors_by_speed_$h >> mirrors_by_speed
rm $tmpdir/mirrors_by_speed_$h
fi
rm $tmpdir/ping$$_$h
echo -n "$h "
) &
# we do not want to flood the net; we test 30 sites at a time
# then we wait 8 seconds so that most of the pings will be done
if [ `expr $n % 30 ` = 0 ] ; then sleep 8 ; fi
done
wait
echo "."
echo "Fastest mirrors are: "
mv mirrors_by_speed mirrors_by_speed~
sort -n mirrors_by_speed~ > mirrors_by_speed
head mirrors_by_speed
# end of script
######################## README.mirrors #####################
ftp.planetmirror.com/pub/mandrake/9.2/i586/ ftp.tugraz.at/mirror/Mandrake-linux/Mandrake/9.2/i586/ ftp.univie.ac.at/systems/linux/Mandrake/9.2/i586/ ftp.belnet.be/packages/mandrake/9.2/i586/ mirror.fis.unb.br/pub/linux/Mandrake/9.2/i586/ gulus.usherb.ca/pub/Mandrake/9.2/i586/ ftp.ucr.ac.cr/pub/Unix/linux/mandrake/Mandrake/9.2/i586/ ftp.cesnet.cz/OS/Linux/Mandrake/mandrake/9.2/i586/ ftp.fi.muni.cz/pub/linux/mandrake/9.2/i586/ ftp.linux.cz/pub/linux/mandrake/9.2/i586/ mandrake.contactel.cz/Mandrake/9.2/i586/ sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/9.2/i586/ ftp.darenet.dk/pub/linux/mandrake/9.2/i586/ ftp.sunsite.dk/mirrors/mandrake/9.2/i586/ klid.dk/Mandrake/9.2/i586/ www.klid.dk/sw/Mandrake/9.2/i586/ ftp.aso.ee/pub/os/Linux/distributions/mandrake/9.2/i586/ ftp.song.fi/pub/linux/Mandrake/9.2/i586/ fr2.rpmfind.net/linux/Mandrake/9.2/i586/ ftp.ciril.fr/pub/linux/mandrake/9.2/i586/ ftp.club-internet.fr/pub/unix/linux/distributions/Mandrake/9.2/i586/ ftp.cs.univ-paris8.fr/pub/linux/distributions/mandrake/9.2/i586/ ftp.ens-cachan.fr/mirror/Mandrake/9.2/i586/ ftp.lip6.fr/pub/linux/distributions/mandrake/9.2/i586/ ftp.proxad.net/pub/Distributions_Linux/mandrake/Mandrake/9.2/i586/ ftp.u-strasbg.fr/pub/linux/distributions/mandrake/9.2/i586/ ftp.univ-lille1.fr/pub/os/linux/distributions/mandrake/9.2/i586/ linux.ups-tlse.fr/Mandrake/9.2/i586/ med.univ-angers.fr/pub/mirror/Mandrake/9.2/i586/ ftp.club-internet.fr/pub/linux/Mandrake/9.2/i586/ ftp-stud.fht-esslingen.de/pub/Mirrors/Mandrake/9.2/i586/ ftp.de.uu.net/pub/linux/mandrake/9.2/i586/ ftp.fh-giessen.de/pub/linux/mandrake/9.2/i586/ ftp.fh-wolfenbuettel.de/pub/os/linux/mandrake/dist/9.2/i586/ ftp.gwdg.de/pub/linux/mandrake/9.2/i586/ ftp.leo.org/pub/comp/os/unix/linux/Mandrake/Mandrake/9.2/i586/ ftp.mki.fh-duesseldorf.de/Mirror/Mandrake/9.2/i586/ ftp.tu-chemnitz.de/pub/linux/mandrake/9.2/i586/ ftp.tu-clausthal.de/pub/linux/mandrake/9.2/i586/ ftp.uasw.edu/pub/os/linux/mandrake/dist/9.2/i586/ ftp.uni-bayreuth.de/pub/linux/Mandrake/9.2/i586/ ftp.uni-kassel.de/pub/linux/mandrake/9.2/i586/ sunsite.informatik.rwth-aachen.de/pub/Linux/mandrake/9.2/i586/ ftp.duth.gr/pub/Mandrake/9.2/i586/ ftp.ntua.gr/pub/linux/mandrake/9.2/i586/ ftp.physics.auth.gr/pub/mirrors/mandrake/Mandrake/9.2/i586/ ftp.prew.hu/pub/Linux/Mandrake/Mandrake/9.2/i586/ bo.mirror.garr.it/mirrors/Mandrake/9.2/i586/ ftp.edisontel.it/pub/Mandrake_Mirror/Mandrake/9.2/i586/ ftp.cs.uu.nl/mirror/Linux/Mandrake/Mandrake/9.2/i586/ ftp.nl.uu.net/pub/linux/mandrake/9.2/i586/ ftp.nluug.nl/pub/os/Linux/distr/Mandrake/Mandrake/9.2/i586/ ftp.snt.utwente.nl/pub/linux/mandrake/9.2/i586/ ftp.surfnet.nl/pub/os/Linux/distr/Mandrake/Mandrake/9.2/i586/ ftp.uninett.no/pub/unix/Linux/Mandrake/Mandrake/9.2/i586/ ftp.chemo.tuniv.szczecin.pl/pub/Linux/mandrake/9.2/i586/ ftp.ps.pl/mirrors/mandrake/9.2/i586/ ftp.task.gda.pl/pub/linux/Mandrake/9.2/i586/ ftp.chg.ru/pub/Linux/mandrake/9.2/i586/ spirit.profinet.sk/mirrors/Mandrake/9.2/i586/ ftp.is.co.za/linux/distributions/mandrake/9.2/i586/ ftp.cica.es/pub/Linux/Mandrake/9.2/i586/ ftp.rediris.es/pub/linux/distributions/mandrake/9.2/i586/ ftp.chello.se/pub/Linux/Mandrake/9.2/i586/ ftp.du.se/pub/os/mandrake/9.2/i586/ ftp.pcds.ch/pub/Mandrake/9.2/i586/ sunsite.cnlab-switch.ch/mirror/mandrake/9.2/i586/ ftp.csie.chu.edu.tw/pub/Linux/Mandrake/Mandrake/9.2/i586/ linux.cdpa.nsysu.edu.tw/pub/mandrake/9.2/i586/ ftp.mirror.ac.uk/sites/sunsite.uio.no/pub/unix/Linux/Mandrake/Mandrake/9.2/i586/ ftp.cs.ucr.edu/pub/mirrors/mandrake/Mandrake/9.2/i586/ ftp.math.utah.edu/pub/linux/Mandrake/9.2/i586/ ftp.phys.ttu.edu/pub/mandrake/9.2/i586/ ftp.rpmfind.net/linux/Mandrake/9.2/i586/ ftp.rutgers.edu/pub/mandrake/Mandrake/9.2/i586/ ftp.umr.edu/pub/linux/mandrake/Mandrake/9.2/i586/ ftp.uwsg.indiana.edu/linux/mandrake/9.2/i586/ helios.dii.utk.edu/pub/linux/Mandrake/Mandrake/9.2/i586/ mandrake.mirrors.pair.com/mandrake/9.2/i586/ mirror.cs.wisc.edu/pub/mirrors/linux/Mandrake/9.2/i586/ mirrors.ptd.net/mandrake/9.2/i586/ mirrors.secsup.org/pub/linux/mandrake/Mandrake/9.2/i586/ mirrors.usc.edu/pub/linux/distributions/mandrake/9.2/i586/ mirrors.xmission.com/mandrake/9.2/i586/ raven.cslab.vt.edu/pub/linux/mandrake/9.2/i586/ gd.tuwien.ac.at/pub/linux/Mandrake-iso/ mirror.fis.unb.br/pub/linux/Mandrake-iso/ mandrake.contactel.cz/Mandrake-iso/ klid.dk/Mandrake-iso/ www.klid.dk/sw/Mandrake-iso/ fr2.rpmfind.net/linux/Mandrake-iso/ ftp.leo.org/pub/comp/os/unix/linux/Mandrake/Mandrake-iso/ ftp.vat.tu-dresden.de/pub/Mandrake-iso/ ftp.ntua.gr/pub/linux/mandrake-iso/ ftp.physics.auth.gr/pub/mirrors/mandrake/Mandrake-iso/ ftp.esat.net/pub/linux/mandrake-iso/ ftp.snt.utwente.nl/pub/linux/mandrake-iso/ ftp.uninett.no/pub/unix/Linux/Mandrake/Mandrake-iso/ spirit.profinet.sk/mirrors/Mandrake-iso/ ftp.cica.es/pub/Linux/Mandrake-iso/ ftp.rediris.es/pub/linux/distributions/mandrake-iso/ ftp.chello.se/pub/Linux/Mandrake-iso/ linux.cdpa.nsysu.edu.tw/pub/mandrake-iso/ mdk.linux.org.tw/pub/mandrake-iso/ ftp.phys.ttu.edu/pub/mandrake-iso/ ftp.rutgers.edu/pub/mandrake/Mandrake-iso/ mandrake.mirrors.pair.com/mandrake-iso/ mirror.mcs.anl.gov/pub/Mandrake-iso/ mirrors.secsup.org/pub/linux/mandrake/Mandrake-iso/ mirrors.usc.edu/pub/linux/distributions/mandrake-iso/ raven.cslab.vt.edu/pub/linux/mandrake-iso/ wuarchive.wustl.edu/mirrors/Mandrake-iso/ ftp.planetmirror.com/pub/mandrake-iso/ppc/ www.klid.dk/sw/Mandrake-iso/ppc/ ftp.esat.net/pub/linux/mandrake-iso/ppc/ gd.tuwien.ac.at/pub/linux/Mandrake-iso/i586 gd.tuwien.ac.at/pub/linux/Mandrake-iso/i586 mandrake.redbox.cz/Mandrake-iso/i586 fr.rpmfind.net/linux/Mandrake-iso/i586 fr2.rpmfind.net/linux/Mandrake-iso/i586 ftp.claranet.fr/pub/linux/distributions/mandrake/Mandrake-iso/i586 ftp.proxad.net/pub/Distributions_Linux/Mandrake-iso/i586 ftp.chello.se/pub/Linux/Mandrake-iso/i586 carroll.cac.psu.edu/pub/linux/distributions/mandrake-iso/i586 ftp.cse.buffalo.edu/pub/Linux/mandrake-iso/i586 ftp.stealth.net/pub/mirrors/ftp.mandrake.com/Mandrake-iso/i586 jungle.metalab.unc.edu/pub/Linux/distributions/mandrake/Mandrake-iso/i586 mirror.fis.unb.br/pub/linux/Mandrake-old/ mandrake.redbox.cz/Mandrake-old/
################### END ####################
Want to buy your Pack or Services from MandrakeSoft? Go to http://www.mandrakestore.com
