Hi all.

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

Reply via email to