Changeset 4297 in genesis
- Timestamp:
- Apr 14, 2005, 4:04:56 PM (20 years ago)
- Location:
- tools/pencontrl
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
tools/pencontrl/pen.sh
r4283 r4297 1 1 #!/bin/sh 2 thisdir=/usr/local/etc/rc.d 3 killall pen 4 /usr/local/bin/pen -b 30 -r -p /var/run/pen.pid -S 3 -O 172.31.255.1:3128 \ 5 `$thisdir/pencontrl.sh` & 2 echo "" > /tmp/proxylist 3 4 get_fetch() { 5 http_proxy="$1:$2" 6 export http_proxy 7 test=`fetch -T 10 -o /dev/null http://www.planet.nl 2>&1` 8 if [ $? = 0 ]; then 9 echo "`echo "$test" |grep kBps | \ 10 sed 's/^.*(//' | awk '{print $1}'` $1" >> /tmp/proxylist 11 fi 12 } 13 14 get_fetch proxy1.wleiden.net 3128 15 get_fetch proxy2.wleiden.net 3128 16 get_fetch proxy3.wleiden.net 3128 17 18 sort -nr /tmp/proxylist > /var/db/proxylist 19 20 kill `cat /var/run/pen.pid` 21 22 /usr/local/bin/pen -b 30 -r -p /var/run/pen.pid -S 3 -O \ 23 172.31.255.1:3128 `cat /var/db/proxylist | awk '{print $2}' | tr "\n" " "` -
tools/pencontrl/pencontrl.sh
r4283 r4297 1 1 #!/bin/sh 2 dir=/usr/local/etc/ 3 dbdir=/var/db 4 echo > /tmp/proxytest 5 for i in proxy1 proxy2 proxy3 6 do 7 http_proxy=http://$i.wleiden.net:3128/ 8 echo $i >> /tmp/proxytest 9 wget -t 1 -T 100 -O /dev/null www.planet.nl 2>>/tmp/proxytest 10 done 11 awk -f $dir/awkpencontrl /tmp/proxytest | sort -r -n >$dbdir/pensequence 12 awk '{print $2 " "}' $dbdir/pensequence | tr -d "\n" 2 echo "" > /tmp/tmp 13 3 4 get_fetch() { 5 http_proxy="$1:$2" 6 export http_proxy 7 test=`fetch -T 10 -o /dev/null http://www.planet.nl 2>&1` 8 if [ $? = 0 ]; then 9 echo "`echo "$test" |grep kBps | \ 10 sed 's/^.*(//' | awk '{print $1}'` $1" >> /tmp/tmp 11 fi 12 } 13 14 get_fetch proxy1.wleiden.net 3128 15 get_fetch proxy2.wleiden.net 3128 16 get_fetch proxy3.wleiden.net 3128 17 18 sort -nr /tmp/tmp 19 -
tools/pencontrl/readme.txt
r4284 r4297 4 4 eerst wordt de lopende pen gekilld 5 5 daarna wordt pen opgestart met proxies in volgorde van throughput 6 dit wordt gedaan in het script pen contrl.sh6 dit wordt gedaan in het script pen.sh 7 7 8 8 methode: 9 De throughput wordt bepaald met fetch. 9 10 Door de environment variabele http_proxy te veranderen in de 10 verschillende proxies wordt met wget een pagina van planet11 binnengehaald en geschreven naar /dev/null12 de prestatie gegevens worden verwerkt en per proxy wordt er een13 regel in / var/db/pensequencesgeschreven11 verschillende proxies wordt met fetch een pagina van verschillende 12 proxies binnengehaald en geschreven naar /dev/null 13 De prestatie gegevens worden verwerkt en per proxy wordt er een 14 regel in /tmp/proxylist geschreven 14 15 <aantal_bytes_per_seconde> <proxy_naam> 15 Hierdoor kan in deze file altijd gezien worden wat de prestatie 16 Daarna wordt deze lijst gesorteerd op het eerste veld en 17 hierdoor kan in deze file altijd gezien worden wat de prestatie 16 18 van de proxies waren, op basis waarvan de volgorde van proxy 17 19 aanroep door pen wordt bepaald. 18 pencontrl.sh maakt gebruik van een awk filter, die is gespecificeerd19 in /usr/local/etc/awkpencontrl20 20 21 randvoorwaarden: 22 Om wget te laten werken is de library /usr/local/lib/libconv.so.3 23 op de node gezet. 24 Verder was het nodig om in /root/.cshrc op te nemen: 25 setenv http_proxy http:proxy.wleiden.net:3128 26 Zonder deze setting hadden de variable setting van http_proxy 27 in het script geen betekenis als environment variabele. 28 De gekozen setting is handig, omdat bij het inloggen meteen getest kan 29 worden of pen werkt. 30 21 gebruikers support 22 Het script pencontrl geeft direct de gesorteerde lijst van prox 23 prestaties in kbytes/s. Dit kan vergeleken worden met 24 /var/db/proxylist zodat besloten kan worden of het zinvol is om over te gaan op 25 een andere proxy. In principe is www.proxy.wleiden.net altijd 26 de beste, maar dit kan door de scheduling achter lopen bij de 27 actuele situatie.
Note:
See TracChangeset
for help on using the changeset viewer.