|
| test e4a linux "k.i.s.s." version |
« Precedente :: Successivo » |
| Autore |
Messaggio
|
| sparayurji |
Inviato: Gio Gen 21, 2010 11:16 pm Oggetto: test e4a linux "k.i.s.s." version |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
test e4a k.i.s.s. for linux versione 0.9b
per utilizzarlo, salvare il contenuto del tag code in un file di testo, nome a piacere, e successivamente modificare i permessi del file per permetterne l'esecuzione:
Codice: chmod +x nomefile
le impostazioni/preferenze sono tutte ad inizio listato, comprensive di commenti.
Codice: #!/bin/bash
####################################################
# TEST E4A K.I.S.S. FOR LINUX, BY SPARAYURJI #
# DIPENDENZE: sed,mtr,bwm-ng,wget,wput #
# un grazie a r3lative per le dritte #
release=0.9b #######################################
PROFILO=4Mb/512Kb/256Kb # dati profilo della linea e4a, inserire i propri
####################################################
# DATO NECESSARIO PER MASCHERAMENTO IP PUBBLICI
IP_APPARATO_IPV4=IP.APP.AR.ATO # l'ipv4 dell'apparato e4a sul tetto (nb l'ipv6 per ora non e' necessario per il masking)
####################################################
# PREFERENZE PER I TRACE
MTR_IPV4=1 # 1=on, 0=off per abilitare/disabilitare il trace test su server ipv4
TRACE_URL_IPV4=maya.ngi.it # modificare a piacere
MTR_IPV6=1 # 1=on, 0=off per abiltare/disabilitare il trace test su su server ipv4 aggiuntivo, o server ipv6
TRACE_URL_IPV6=www.google.com # server ipv6 o a piacere
PING_PER_HOP=100 # modificare a piacere (100 = 100 secondi = 100 passaggi per hop)
####################################################
# PREFERENZE PER IL RILEVAMENTO BANDA OCCUPATA PRE TEST DL
BWM=1 # 1=on, 0=off per abiltare/disabilitare il rilevamento preliminare, che sarebbe pleonastico se la lan fosse in uso
NETCARD=eth0 # modificare se la scheda di rete connessa al router/gateway e' diversa da eth0
BWM_TIME=10 # durata rilevamento (10 = 5 secondi)
####################################################
# PREFERENZE PER I DOWNLOAD TEST
HTTP_DL_A=1 # 1=on, 0=off per abilitare/disabilitare il download test da http_a
HTTP_URL_A=http://debian.fastweb.it/debian/ls-lR.gz # a piacere
FTP_DL_A=1 # 1=on, 0=off per abilitare/disabilitare il dl da ftp_a
FTP_URL_A=ftp://debian.fastweb.it/debian/ls-lR.gz # a piacere
HTTP_DL_B=1 # 1=on, 0=off per abilitare/disabilitare il dl test da http_b
HTTP_URL_B=http://mi.mirror.garr.it/mirrors/debian/ls-lR.gz # a piacere
FTP_DL_B=1 # 1=on, 0=off per abilitare/disabilitare il dl test da ftp_b
FTP_URL_B=ftp://mi.mirror.garr.it/mirrors/debian/ls-lR.gz # a piacere
PARAMETRI_FTP=--no-passive-ftp # "--no-passive-ftp" per ftp attivo; vuoto per ftp passivo
####################################################
# PREFERENZE PER GLI UPLOAD TEST
UPLOAD_1=0 # 1=on, 0=off per abilitare/disabilitare il primo upload test
FTP_UL_URL=ftp.digiland.it # l'indirizzo ftp (rispettare il formato, senza "ftp://") a cui inviare il file di test
FTP_UL_USER=username # username ftp1
FTP_UL_PWD=password # password ftp1
UPLOAD_2=0 # 1=on, 0,off per abilitare/disabilitare il secondo upload test
FTP2_UL_URL=url # secondo indirizzo ftp (rispettare il formato, senza "ftp://") a cui inviare il file di test
FTP2_UL_USER=username # username ftp2
FTP2_UL_PWD=password # password ftp2
FTP_UL_SIZE=512K # dimensione del file fittizio da uploadare (es 256K, 768K, 1M, 2M ...etc)
#FINE PREFERENZE
####################################################
if type sed > /dev/null 2>&1; then # inizio controllo errori/dipendenze/impostazioni
sedtag=
else sedtag=" sed"
fi
if [ $MTR_IPV4 -eq 1 ] ; then
dspmtra="- $PING_PER_HOP mtr su $TRACE_URL_IPV4"
echopmtra="-e"
if type mtr > /dev/null 2>&1; then
mtrtag=
else mtrtag=" mtr"
fi
else dspmtra=
echopmtra="-e -n"
fi
if [ $MTR_IPV6 -eq 1 ] ; then
dspmtrb="- $PING_PER_HOP mtr su $TRACE_URL_IPV6"
echopmtrb="-e"
if type mtr > /dev/null 2>&1; then
mtrtag=
else mtrtag=" mtr"
fi
else dspmtrb=
echopmtrb="-e -n"
fi
if [ $BWM -eq 1 ] ; then
dspbwm="- Controllo bandwidth eventualmente gia' in uso su $NETCARD"
echopbwm="-e"
if type bwm-ng > /dev/null 2>&1; then
bwmtag=
else bwmtag=" bwm-ng"
fi
else dspbwm=
echopbwm="-e -n"
fi
if [ $HTTP_DL_A -eq 1 ] ; then
dsphttpa="- Download di $HTTP_URL_A"
echopha="-e"
if type wget > /dev/null 2>&1; then
wgetag=
else wgetag=" wget"
fi
else dsphttpa=
echopha="-e -n"
fi
if [ $FTP_DL_A -eq 1 ] ; then
dspftpa="- Download di $FTP_URL_A"
echopfa="-e"
if type wget > /dev/null 2>&1; then
wgetag=
else wgetag=" wget"
fi
else dspftpa=
echopfa="-e -n"
fi
if [ $HTTP_DL_B -eq 1 ] ; then
dsphttpb="- Download di $HTTP_URL_B"
echophb="-e"
if type wget > /dev/null 2>&1; then
wgetag=
else wgetag=" wget"
fi
else dsphttpb=
echophb="-e -n"
fi
if [ $FTP_DL_B -eq 1 ] ; then
dspftpb="- Download di $FTP_URL_B"
echopfb="-e"
if type wget > /dev/null 2>&1; then
wgetag=
else wgetag=" wget"
fi
else dspftpb=
echopfb="-e -n"
fi
if [ $UPLOAD_1 -eq 1 ] ; then
dspula="- Upload di $FTP_UL_SIZE su $FTP_UL_URL"
echopua="-e"
if type wput > /dev/null 2>&1; then
wputag=
else wputag=" wput"
fi
else dspula=
echopua="-e -n"
fi
if [ $UPLOAD_2 -eq 1 ] ; then
dspulb="- Upload di $FTP_UL_SIZE su $FTP2_UL_URL"
echopub="-e"
if type wput > /dev/null 2>&1; then
wputag=
else wputag=" wput"
fi
else dspulb=
echopub="-e -n"
fi
if type mtr sed wget bwm-ng wget wput > /dev/null 2>&1; then
:
else clear
echo -e '\E[37;31m'"\033[1mERRORE, DIPENDENZE NON SODDISFATTE:\033[0m\033[1m$mtrtag$bwmtag$wputag$wgetag$sedtag\033[0m"
echo "" && tput sgr0 && exit 1
fi
e4aipnm=$(echo $IP_APPARATO_IPV4 | cut -d '.' -f1,2,3)
checkip=$(wget -O- http://checkip.dyndns.org/ 2>/dev/null | cut -d " " -f6 | cut -d "." -f1,2,3)
if ! echo $IP_APPARATO_IPV4 | grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}$' > /dev/null; then
clear && echo -e '\E[37;31m'"\033[1mERRORE, PARAMETRO [IP_APPARATO_IPV4] NON INSERITO CORRETTAMENTE. VERIFICARE:\033[0m\033[1m $IP_APPARATO_IPV4\033[0m"
echo "" && tput sgr0 && exit 1
else :
fi
if ! echo $checkip | grep "$e4aipnm" > /dev/null; then
clear && echo -e '\E[37;31m'"\033[1mERRORE, MANCATA CORRISPONDENZA TRA PARAMETRO [IP_APPARATO_IPV4] IMPOSTATO E IP PUBBLICO RILEVATO DA DYNDNS.ORG. VERIFICARE:\033[0m\033[1m $IP_APPARATO_IPV4\033[0m"
echo "" && tput sgr0 && exit 1
else :
fi
clear
echo -e '\E[37;32m'"\033[1mTest E4a K.I.S.S. $release - In esecuzione con le seguenti impostazioni:\033[0m" && tput sgr0
echo ""
echo $echopmtra "\033[1m$dspmtra\033[0m"
echo $echopmtrb "\033[1m$dspmtrb\033[0m"
echo $echopbwm "\033[1m$dspbwm\033[0m"
echo $echopha "\033[1m$dsphttpa\033[0m"
echo $echopfa "\033[1m$dspftpa\033[0m"
echo $echophb "\033[1m$dsphttpb\033[0m"
echo $echopfb "\033[1m$dspftpb\033[0m"
echo $echopua "\033[1m$dspula\033[0m"
echo $echopub "\033[1m$dspulb\033[0m"
echo "" # fine controllo errori/dipendenze/impostazioni
lanhn=$(echo $(hostname)) # variabili per mascheramento ip
e4aipln=$(echo $IP_APPARATO_IPV4 | cut -d '.' -f4)
e4aip2=$(expr $e4aipln + 1)
e4aip3=$(expr $e4aipln + 2)
e4aip4=$(expr $e4aipln + 3)
e4aip5=$(expr $e4aipln + 4)
e4aip6=$(expr $e4aipln + 5)
spaces_ipv4=$(expr 16 - $(expr length $IP_APPARATO_IPV4))
spaces_hn=$(expr 21 - $(expr length $lanhn))
spaces_st_ipv4=$(expr 4 + $(expr length $TRACE_URL_IPV4))
spaces_st_ipv6=$(expr 4 + $(expr length $TRACE_URL_IPV6))
sedexp1_ipv4=$(echo "s/$e4aipnm.($e4aipln|$e4aip2|$e4aip3|$e4aip4|$e4aip5|$e4aip6)[[:space:]]{1,$spaces_ipv4}/xxx.xxx.xxx.xxx /g")
sedexp1_ipv6=$(echo 2,3d)
sedexp2=$(echo "s/$lanhn[[:space:]]{1,$spaces_hn}/ /g")
sedexp3_ipv4=$(echo "s/([A-Za-z0-9\.]+ +[([])?(10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|172\.1[6-9]\.[0-9]{1,3}\.[0-9]{1,3}|172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}|172\.3[0-1]\.[0-9]{1,3}\.[0-9]{1,3}|192\.168\.[0-9]{1,3}\.[0-9]{1,3}|127\.0\.0\.1)[])]?/xxx.xxx.xxx.xxx /g")
sedexp4_ipv4=$(echo "s/HOST:[[:space:]]{1,$spaces_st_ipv4}/ mtr su $TRACE_URL_IPV4:/g")
sedexp4_ipv6=$(echo "s/HOST:[[:space:]]{1,$spaces_st_ipv6}/ mtr su $TRACE_URL_IPV6:/g")
echo -e '\E[37;31m'"\033[1m[code]\033[0mtest e4a k.i.s.s. for linux - $release - by sparayurji $(date +%b%d) $(date +%R)" && tput sgr0 # intestazione
echo "----------------------------------------------------------------------------"
if [ $MTR_IPV4 -eq 1 ] ; then # inizio trace test ipv4
mtr -n -c $PING_PER_HOP -r $TRACE_URL_IPV4 | sed -r -e "$sedexp1_ipv4" -e "$sedexp2" -e "$sedexp3_ipv4" -e "$sedexp4_ipv4"
echo "----------------------------------------------------------------------------"
else :
fi
if [ $MTR_IPV6 -eq 1 ] ; then # inizio trace test ipv6, o ipv4 aggiuntivo
mtr -n -c $PING_PER_HOP -r $TRACE_URL_IPV6 | sed -r -e "$sedexp1_ipv6" -e "$sedexp2" -e "$sedexp4_ipv6"
echo "----------------------------------------------------------------------------"
else :
fi
if [ $BWM -eq 1 ] ; then # inizio rilevamento banda occupata
bpsrx=$(bwm-ng -I $NETCARD -A 2 -c $BWM_TIME -o csv 1 -T avg | tail -1 | cut -d ';' -f4 | cut -d '.' -f1)
bpstx=$(bwm-ng -I $NETCARD -A 2 -c $BWM_TIME -o csv 1 -T avg | tail -1 | cut -d ';' -f3 | cut -d '.' -f1)
rxpre=$(expr $bpsrx \/ 1024)
txpre=$(expr $bpstx \/ 1024)
echo " = $NETCARD <- $rxpre KB/s, $NETCARD -> $txpre KB/s"
else :
fi
httprep_a=$(echo "$HTTP_URL_A:" | sed -r -e "s/http:/ /g" | cut -d '/' -f3) # inizio donwload test da http_a
if [ $HTTP_DL_A -eq 1 ] ; then
kbps_ha=$(wget -O /dev/null 2>&1 $HTTP_URL_A | tail -2 | cut -d ' ' -f3 | cut -d '(' -f2)
echo " < $httprep_a http: $kbps_ha KB/s"
else :
fi
ftprep_a=$(echo "$FTP_URL_A:" | sed -r -e "s/ftp:/ /g" | cut -d '/' -f3) # inizio donwload test da ftp_a
if [ $FTP_DL_A -eq 1 ] ; then
kbps_fa=$(wget $PARAMETRI_FTP -O /dev/null 2>&1 $FTP_URL_A | tail -2 | cut -d ' ' -f3 | cut -d '(' -f2)
echo " < $ftprep_a ftp : $kbps_fa KB/s"
else :
fi
httprep_b=$(echo "$HTTP_URL_B:" | sed -r -e "s/http:/ /g" | cut -d '/' -f3) # inizio donwload test da http_b
if [ $HTTP_DL_B -eq 1 ] ; then
kbps_hb=$(wget -O /dev/null 2>&1 $HTTP_URL_B | tail -2 | cut -d ' ' -f3 | cut -d '(' -f2)
echo " < $httprep_b http: $kbps_hb KB/s"
else :
fi
ftprep_b=$(echo "$FTP_URL_B:" | sed -r -e "s/ftp:/ /g" | cut -d '/' -f3) # inizio donwload test da ftp_b
dlftp2char=$(expr length $FTP_URL_B)
if [ $FTP_DL_B -eq 1 ] ; then
kbps_fb=$(wget $PARAMETRI_FTP -O /dev/null 2>&1 $FTP_URL_B | tail -2 | cut -d ' ' -f3 | cut -d '(' -f2)
echo " < $ftprep_b ftp : $kbps_fb KB/s"
else :
fi
upftprep=$(echo "$FTP_UL_URL" | cut -d '/' -f2) # inizio upload test1
if [ $UPLOAD_1 -eq 1 ] ; then
dd > /dev/null 2>&1 if=/dev/urandom of=$HOME/ul_e4a_kiss bs=$FTP_UL_SIZE count=1
bps_up=$(wput -nc ftp://$FTP_UL_USER:$FTP_UL_PWD@$FTP_UL_URL $HOME/ul_e4a_kiss | tail -1 | cut -d ' ' -f8 | cut -d '.' -f1)
echo " > $FTP_UL_SIZE su $upftprep: $bps_up KB/s"
else :
fi
upftp2rep=$(echo "$FTP2_UL_URL" | cut -d '/' -f2) # inizio upload test2
if [ $UPLOAD_2 -eq 1 ] ; then
[ ! -e /$HOME/ul_e4a_kiss ] && dd > /dev/null 2>&1 if=/dev/urandom of=$HOME/ul_e4a_kiss bs=$FTP_UL_SIZE count=1
bps_up2=$(wput -nc ftp://$FTP2_UL_USER:$FTP2_UL_PWD@$FTP2_UL_URL $HOME/ul_e4a_kiss | tail -1 | cut -d ' ' -f8 | cut -d '.' -f1)
echo " > $FTP_UL_SIZE su $upftp2rep: $bps_up2 KB/s"
else :
fi
rm -f $HOME/ul_e4a_kiss
echo -n " ~ $PROFILO"
echo -e "\E[37;31m\033[1m[/code]" && tput sgr0

L'ultima modifica di sparayurji il Gio Feb 25, 2010 5:54 pm, modificato 28 volte |
|
| Top |
|
 |
Sponsor
|
|
 |
| sparayurji |
Inviato: Ven Gen 22, 2010 4:34 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
ho aggiunto un rilevamento di massima per eventuale ulteriore banda occupata in dl durante il test, rilevamento che viene eseguito subito prima dei test del download.
in tutto le dipendenze sono: sed, wget e bwm-ng.
Codice: #!/bin/bash
echo "[code]$(date)"
echo "----------------------------------------------------------------------------"
#tracerote con mascheramento ip (manuale)
echo "trace (maya.ngi.it):"
mtr --no-dns -c 180 -r maya.ngi.it | \sed -r -e "s/NN.NN.NN.(NNN|NNN|NNN|NNN|NNN|NNN) /xxx.xxx.xxx.xxx/g" -e "s/AAA/xxx/g" -e "s/HOST:/host:/g"
echo '----------------------------------------------------------------------------'
#rilevamento banda occupata pre-test dl
bwm-ng -I eth0 -A 2 -c 15 -o csv 1 -T avg > $HOME/bwmlog
dlbwb=$(sed -e '1,29d' $HOME/bwmlog | cut -d ';' -f4,11 | cut -d '.' -f1,1)
dlbwkb=`expr $dlbwb \/ 1024`
echo "download (ls-LR.gz da debian.fastweb.it):"
#test dl
wget -O /dev/null -o $HOME/httpdl --progress=bar:force http://debian.fastweb.it/debian/ls-lR.gz
echo "http $(sed -e '1,9d' $HOME/httpdl | cut -d ' ' -f3,4)"
wget --no-passive-ftp -O /dev/null -o $HOME/ftpdl --progress=bar:force ftp://debian.fastweb.it/debian/ls-lR.gz
echo "ftp $(sed -e '1,13d' $HOME/ftpdl | cut -d ' ' -f3,4)"
echo "eseguito con $dlbwkb KB/s occupati in dl"
echo "-----------------------------------------------------------[4Mb/512Kb/256Kb][/code]" |
|
| Top |
|
 |
| sparayurji |
Inviato: Sab Gen 23, 2010 4:22 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
faccio lo sborone e dichiaro la prima release...
ho dato un'ottimizzata al codice per rilevare la banda pre dl test, facendo a meno del file temporaneo e della variabile 'intermedia', e ho inserito qualche commento in piu'...
Codice: #!/bin/bash
echo "[code]test e4a k.i.s.s. version - r0.1 - sparayurji - $(date)"
echo "----------------------------------------------------------------------------"
#traceroute con mascheramento ip. inserire manualmente i propri ip aggiungendo tanti spazi quanti
#siano eventualmente necessari ad arrivare a 15 caratteri (123.567.901.345), altrimenti si perde l'allineamento lista.
echo "trace (maya.ngi.it):"
mtr --no-dns -c 180 -r maya.ngi.it | \sed -r -e "s/NN.NN.NN.(NNN|NNN|NNN|NNN|NNN|NNN) /xxx.xxx.xxx.xxx/g" -e "s/AAA/xxx/g" -e "s/HOST:/host:/g"
echo '----------------------------------------------------------------------------'
#rilevamento banda eventualmente occupata prima del download test
dlbwpre=`expr $(bwm-ng -I eth0 -A 2 -c 15 -o csv 1 -T avg | tail -1 | cut -d ';' -f4,11 | cut -d '.' -f1,1) \/ 1024`
#download test
echo 'download (ls-LR.gz da debian.fastweb.it):'
wget -O /dev/null -o $HOME/httpdl --progress=bar:force http://debian.fastweb.it/debian/ls-lR.gz
echo "http $(sed -e '1,9d' $HOME/httpdl | cut -d ' ' -f3,4)"
wget --no-passive-ftp -O /dev/null -o $HOME/ftpdl --progress=bar:force ftp://debian.fastweb.it/debian/ls-lR.gz
echo "ftp $(sed -e '1,13d' $HOME/ftpdl | cut -d ' ' -f3,4)"
echo '---------------'
#messaggio su banda occupata pre-test e dati profilo (inserire i propri)
echo "eseguito con $dlbwpre KB/s occupati in dl - profilo 4Mb/512Kb/256Kb[/code]" |
|
| Top |
|
 |
| sparayurji |
Inviato: Sab Gen 23, 2010 10:56 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
altra ottimizzata: eliminato completamente l'uso di file temporanei su disco. il tutto dovrebbe anche essere meno rigido rispetto ai parametri di bwm-ng e wget.
Codice: #!/bin/bash
echo "[code]test e4a k.i.s.s. version - 0.2a - sparayurji - $(date)"
echo "----------------------------------------------------------------------------"
#traceroute con mascheramento ip. inserire manualmente i propri ip aggiungendo tanti spazi quanti
#siano eventualmente necessari ad arrivare a 15 caratteri (123.567.901.345), altrimenti si perde l'allineamento lista.
echo "trace (maya.ngi.it):"
mtr --no-dns -c 180 -r maya.ngi.it | \sed -r -e "s/NN.NN.NN.(NNN|NNN|NNN|NNN|NNN|NNN) /xxx.xxx.xxx.xxx/g" -e "s/AAA/xxx/g" -e "s/HOST:/host:/g"
echo '----------------------------------------------------------------------------'
#rilevamento banda eventualmente occupata prima del download test
dlbwpre=`expr $(bwm-ng -I eth0 -A 2 -c 15 -o csv 1 -T avg | tail -1 | cut -d ';' -f4,11 | cut -d '.' -f1,1) \/ 1024`
#download test
echo "http: $(wget --no-passive -O /dev/null 2>&1 http://debian.fastweb.it/debian/ls-lR.gz | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
echo " ftp: $(wget --no-passive -O /dev/null 2>&1 ftp://debian.fastweb.it/debian/ls-lR.gz | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
echo '---------------'
#messaggio su banda occupata pre-test e dati profilo (inserire i propri)
echo "[*] eseguito con $dlbwpre KB/s gia' usati in download / profilo 4Mb/512Kb/256Kb[/code]"
L'ultima modifica di sparayurji il Dom Gen 24, 2010 12:34 am, modificato 1 volta |
|
| Top |
|
 |
| sparayurji |
Inviato: Dom Gen 24, 2010 12:33 am Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
0.2b: eliminata variabile per il calcolo della bw gia' occupata, e leggera riorganizzazione layout, roba solo estetica.
la parte strettamente funzionale sta ora in quattro righe di codice.
Codice:
#!/bin/bash
echo "[code]test e4a k.i.s.s. - linux - 0.2b - sparayurji - $(date)"
echo "----------------------------------------------------------------------------"
#traceroute con mascheramento ip. inserire manualmente i propri ip aggiungendo tanti spazi quanti
#siano eventualmente necessari ad arrivare a 15 caratteri (123.567.901.345), altrimenti si perde l'allineamento lista.
echo "trace (maya.ngi.it):"
mtr --no-dns -c 180 -r maya.ngi.it | \sed -r -e "s/NN.NN.NN.(NNN|NNN|NNN|NNN|NNN|NNN) /xxx.xxx.xxx.xxx/g" -e "s/AAA/xxx/g" -e "s/HOST:/host:/g"
echo '----------------------------------------------------------------------------'
#rilevamento banda eventualmente occupata prima del download test
echo "[*] $(expr $(bwm-ng -I eth0 -A 2 -c 15 -o csv 1 -T avg | tail -1 | cut -d ';' -f4,11 | cut -d '.' -f1,1) \/ 1024) KB/s gia' occupati in download"
#download test
echo "http: $(wget --no-passive -O /dev/null 2>&1 http://debian.fastweb.it/debian/ls-lR.gz | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
echo " ftp: $(wget --no-passive -O /dev/null 2>&1 ftp://debian.fastweb.it/debian/ls-lR.gz | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
#dati profilo (inserire i propri rispettando la lunghezza complessiva, fatto puramente estetico)
echo "-----------------------------------------------------------[4Mb/512Kb/256Kb][/code]"
|
|
| Top |
|
 |
| sparayurji |
Inviato: Dom Gen 24, 2010 10:58 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
0.3b: modularizzato svariati parametri, restano manuali praticamente solo quelli relativi al mascheramento ip, che vanno pero' inseriti una volta sola.
inserito un controllo sulle dipendenze.
ho anche esteso parecchio i commenti.
mi farebbe piacere se qualcuno lo provasse, anche per capire se con altre distro, io uso archlinux, che e' notoriamente aggiornata, ci fossero problemi con eventuali versioni precedenti dei swr necessari. fatto salvo che potrebbero essercene a prescindere, neh...
Codice: #!/bin/bash
echo '[code]----------------------------------------------------------------------------'
echo "teste4a k.i.s.s. - 0.3b - by sparayurji - $(uname -sr) - [$(date +%b%d)][$(date +%R)]"
echo '----------------------------------------------------------------------------'
# parametri per trace test
tracetarget=maya.ngi.it # modificare a piacere con indirizzo alternativo
traceperhop=180 # modificare a piacere (180 = 180 secondi)
if type mtr sed > /dev/null 2>&1; then # controllo se mtr e sed sono installati
# traceroute test con mascheramento ip. inserire manualmente i propri ip pubblici aggiungendo tanti spazi quanti
# fossero eventualmente necessari ad arrivare a 15 caratteri (123.567.901.345), altrimenti si perde l'allineamento lista.
# esempio: poniamo che gli ip pubblici siano 123.45.67.100-105 (13 caratteri), il parametro diventa:
# "s/123.45.67.(100|101|102|103|104|105) /xxx.xxx.xxx.xxx/g"
# lo stesso vale per eventuali ip della lan, ad esempio quello assegnato al router.
# esempio: l'ip interno del router e' 192.168.0.1 (11 caratteri), il parametro diventa: "s/192.168.0.1 //xxx.xxx.xxx.xxx/g"
# nel caso del nomehost gli spazi eventuali potrebbero dover essere aggiunti alla maschera, esempio:
# nome host pippo (5 caratteri) il parametro diventerebbe -e "s/pippo/xxx /g"
echo "trace (su $tracetarget usando mtr v$(mtr --version | cut -d ' ' -f2,2)):"
mtr --no-dns -c $traceperhop -r $tracetarget | sed -r -e "s/NN.NN.NN.(NNN|NNN|NNN|NNN|NNN|NNN) /xxx.xxx.xxx.xxx/g" -e "s/nomehost/xxx /g" -e "s/LLL.LLL.L.L /xxx.xxx.xxx.xxx/g"
else echo "[MTR E/O SED NON INSTALLATI. USCITA]"
exit 1
fi
echo '----------------------------------------------------------------------------'
# parametri per rilevamento banda occupata pre dl test
netcard=eth0 # modificare se scheda di rete diversa da eth0
bwmtime=20 # durata rilevamento banda occupata (20 = 10 secondi)
if type bwm-ng > /dev/null 2>&1; then # controllo se bwm-ng e' installato
# rilevamento banda eventualmente occupata prima del download test
echo "[*] $(expr $(bwm-ng -I $netcard -A 2 -c 20 -o csv 1 -T avg | tail -1 | cut -d ';' -f4,11 | cut -d '.' -f1,1) \/ 1024) KB/s gia' occupati in download (rilevati su $netcard usando bwm-ng $(bwm-ng -V | grep bwm-ng | cut -d ' ' -f5,5))"
else echo "[bwm-ng non installato rilevamento banda gia' usata in dl non eseguito]"
fi
echo '----------------------------------------------------------------------------'
# parametri per download test
dlsite=debian.fastweb.it/debian/ # modificare con indirizzo alternativo da cui scaricare
dltarget=ls-lR.gz # modificare con file alternativo da scaricare
ftptrp=--no-passive-ftp # "--no-passive-ftp" per ftp-attivo; "--passive-ftp" per ftp-passivo (questo secondo parametro non e' realmente necessario, serve solo a visualizzarlo di seguito ai KB/s)
if type wget > /dev/null 2>&1; then # controllo se wget e' installato
# download test
echo "download ($dltarget da $dlsite usando wget v$(wget -V | sed -e '2,30d' | cut -d ' ' -f3,3)):"
echo "http: $(wget -O /dev/null 2>&1 http://$dlsite$dltarget | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
echo " ftp: $(wget $ftptrp -O /dev/null 2>&1 ftp://$dlsite$dltarget | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s ($ftptrp)"
else echo "[wget non installato, download test non eseguito]"
fi
echo '----------------------------------------------------------------------------'
# dati profilo, inserire i propri
echo "profilo: [4Mb/512Kb/256Kb][/code]"
il risultato e' questo:
Codice: ----------------------------------------------------------------------------
teste4a k.i.s.s. - 0.3a - by sparayurji - Linux 2.6.32-ARCH - [Jan24][21:40]
----------------------------------------------------------------------------
trace (su maya.ngi.it usando mtr v0.75):
host: xxx Loss% Snt Last Avg Best Wrst StDev
1. xxx.xxx.xxx.xxx 0.0% 180 25.2 0.9 0.5 25.2 2.0
2. xxx.xxx.xxx.xxx 0.0% 180 2.3 4.2 1.7 116.8 9.6
3. 94.47.82.186 0.0% 180 2.8 5.0 2.2 106.6 9.3
4. 94.47.82.1 0.0% 180 2.9 4.8 2.2 106.5 8.5
5. 94.47.82.253 0.0% 180 9.7 8.1 2.8 65.8 8.9
6. 94.47.81.249 0.0% 180 3.8 8.7 3.3 51.6 7.9
7. 94.47.108.253 0.0% 180 4.2 11.7 3.6 79.4 9.9
8. 94.47.108.2 0.0% 180 8.5 12.0 3.8 60.2 9.5
9. 94.47.108.249 0.0% 180 4.4 12.2 4.0 50.2 8.9
10. 79.137.49.252 0.0% 180 6.5 12.1 4.2 43.3 7.6
11. 94.47.147.73 0.0% 180 11.6 22.4 6.9 433.1 32.4
12. 94.47.147.70 0.6% 180 38.7 31.3 14.0 399.0 30.4
13. 80.79.51.175 0.0% 180 27.5 32.5 14.8 351.8 27.0
14. 94.47.0.87 0.6% 180 46.8 52.6 25.1 507.5 42.4
15. 94.47.0.200 0.6% 180 64.0 52.6 29.0 257.5 22.1
16. 94.47.0.73 1.7% 180 40.2 53.7 27.0 214.0 21.6
17. 79.137.95.58 0.6% 180 82.0 59.4 30.2 450.4 35.2
18. 217.29.66.2 1.7% 180 60.8 70.7 33.3 404.1 54.0
19. 212.239.110.46 2.2% 180 36.6 57.6 30.9 356.9 27.7
20. 81.174.0.246 1.7% 180 40.9 57.4 30.7 309.8 26.0
21. 88.149.128.3 0.6% 180 72.5 58.9 33.0 262.8 24.3
----------------------------------------------------------------------------
[*] 34 KB/s gia' occupati in download (rilevati su eth0 usando bwm-ng v0.6)
----------------------------------------------------------------------------
download (ls-lR.gz da debian.fastweb.it/debian/ usando wget v1.12):
http: 346 KB/s
ftp: 389 KB/s (--no-passive-ftp)
----------------------------------------------------------------------------
profilo: [4Mb/512Kb/256Kb] |
|
| Top |
|
 |
| dev/null |
Inviato: Lun Gen 25, 2010 12:44 am Oggetto: |
|
|

Registrato: 13/09/07 16:33 Età: 22 Messaggi: 1091 Residenza: JN55VL
|
Occhio che se vai avanti così diventa un one-liner
Comunque mi sa che manderai presto in pensione il vecchio test
Avevo una mezza idea di fare qualcosa che si "adattasse" automaticamente ad eventuali problemi della linea (problemi di raggiungibilità dei DNS, lentezza dei download etc.)... ma devo mettermici di buona volontà. _________________ The ideas of economists and political philosophers, both when they are right and when they are wrong, are more powerful than is commonly understood. Indeed the world is ruled by little else. Practical men, who believe themselves to be quite exempt from any intellectual influence, are usually the slaves of some defunct economist. Madmen in authority, who hear voices in the air, are distilling their frenzy from some academic scribbler of a few years back. I am sure that the power of vested interests is vastly exaggerated compared with the gradual encroachment of ideas. -- J.M. Keynes |
|
| Top |
|
 |
| sparayurji |
Inviato: Lun Gen 25, 2010 1:14 am Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
| dev/null ha scritto: | Occhio che se vai avanti così diventa un one-liner  |
si in effetti lo 'strettamente k.i.s.s.' tende a andare a farsi benedire, ma era un k.i.s.s piu' che altro dovuto ad ignoranza mia
| Citazione: |
Comunque mi sa che manderai presto in pensione il vecchio test  |
beh, premetto che non era questo il fine (e che non ne sono cosi' convinto) avevo voglia di cimentarmi , e devo anche dire che pensavo fosse piu' faticoso. a dirla tutta un punto di partenza e' stato anche che avevo l'impressione che 'panciuto' com'e', il tuo fosse faticoso da manutenere, posto che sia necessario ovviamente, e ovviamente pensavo il tutto dal basso della mia ignoranza sull'argomento. e' di sicuro enormemente piu' modulare e flessibile, neh.
| Citazione: |
Avevo una mezza idea di fare qualcosa che si "adattasse" automaticamente ad eventuali problemi della linea (problemi di raggiungibilità dei DNS, lentezza dei download etc.)... ma devo mettermici di buona volontà. |
mah, non sono sicuro di aver capito bene, ma io sono dell'idea che un test debba per l'appunto testare la qualita' della linea dritto per dritto, che' se c'e' la rogna la evidenzi, non la aggiri. ma credo di aver capito male cio' che intendevi, a rileggere...
una caratteristica che non sarebbe male inserire sarebbe un test dell'upload, btw. io non ho la piu' pallida idea di come implementarla, o meglio, non so dove ci si potrebbe appoggiare lato esterno, senza doversi registrare e cazzi vari. mmm, si chiedesse a riccardo un angolino?
ps: mi dai una testata, per sapere alla buona se su distro piu' conservativa (magari ricordo male ma mi sembra tu usi debian) ci sono rogne? |
|
| Top |
|
 |
| dev/null |
Inviato: Lun Gen 25, 2010 1:50 am Oggetto: |
|
|

Registrato: 13/09/07 16:33 Età: 22 Messaggi: 1091 Residenza: JN55VL
|
Domani vedo di provarlo sulla mia debian (abbastanza vetusta anche come software installato).
Per il resto il "mio" test non è proprio il "mio" test. Il grosso del lavoro si deve a pmatthew e io ho praticamente giocato con le costruzioni (visto che anche la mia, per quanto riguarda il bash scripting, si può chiamare "ignoranza"... anche se sed/awk e regex sono nell'agenda delle cose da imparare per bene). Per il resto che venga usato uno o l'altro a me nulla cambia, figurati
Per il resto mi sono spiegato troppo sinteticamente: intendevo dire che se c'è la rogna vorrei evitare che il test duri una vita. Se io ho 6 mega pieni in download ci metto poco a scaricare un file da 15 megabyte, mentre uno da 5 risulterebbe forse troppo piccolo. Se io ho 512k il test rischia di durarmi una vita r3lative mi aveva passato un abbozzo di soluzione per dare un timeout al download.
Keep up the good work comunque  _________________ The ideas of economists and political philosophers, both when they are right and when they are wrong, are more powerful than is commonly understood. Indeed the world is ruled by little else. Practical men, who believe themselves to be quite exempt from any intellectual influence, are usually the slaves of some defunct economist. Madmen in authority, who hear voices in the air, are distilling their frenzy from some academic scribbler of a few years back. I am sure that the power of vested interests is vastly exaggerated compared with the gradual encroachment of ideas. -- J.M. Keynes |
|
| Top |
|
 |
| sparayurji |
Inviato: Lun Gen 25, 2010 2:41 am Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
si giusto, cmq avevo omesso pmatthew per brevita'. e perche' se' ga' infiga' e quindi ha perso i diritti
alla fine avevo intuito cosa intendevi, ad ogni modo. per pigressa non ho aggiunto
sono cmq dell'idea che in caso di problemi di linea un singolo test non sia sufficiente a stabilire se la banda c'e' o no, ma che piuttosto sia quasi mandatorio monitorare con piu' test scadenzati e un minimo differenziati.
e quindi imho nello script basta tenersi commentati (o gestibili via parametro da cli o simile) due/tre target di differente dimensione, ma soprattutto da differenti server.
cmq io sono tendenzialmente per 'il fare le cose a manina', lato utilizzatore dello script, per tutta una serie di motivi, non per forza tutti giusti. primo tra tutti, per non nascondermi dietro un dito, che non sarei in grado di automatizzare completamente il tutto. |
|
| Top |
|
 |
| sparayurji |
Inviato: Lun Gen 25, 2010 7:50 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
0.4b:
-parametrizzato gli ip da mascherare in modo da renderli piu' semplici da inserire.
-inserito tutti i parametri principali (tranne quelli relativi al rilevamento banda, per il momento) all'inizio del file in modo che siano tutti sott'occhio all'apertura.
-rivisitazione delle parti commentate
Codice:
#!/bin/bash
profilo='[4Mb/512Kb/256Kb]' # dati profilo, inserire i propri
# dati di rete per mascheramento ip nel report
e4aipnm=12.34.56 # inserire la netmask degli indirizzi pubblici assegnati da e4a. inserirlo cosi' come da esempio
e4aip1=101 # ip dell'apparato (solo ultima terzina) inserirlo cosi' come da esempio
e4aip2=102 # ip successivo, normalmente quello wan del router
e4aip3=103 # eccetera
e4aip4=104 # "
e4aip5=105 # "
e4aip6=106 # "
spaces_ip=' ' # inserire tra gli apici tanti spazi quanti ne manchino perche' [indirizzo+spazi] occupi 15 caratteri. nell'esempio sarebbero 12.34.56.101 (11 caratteri), quindi andrebbero aggiunti 4 spazi
langateway='192.168.0.1' # l'ip della lan assegnato al router, indicato anche come gateway
spaces_gw=' ' # come sopra
lanhostname=pippo # l'hostname della lan assegnato al pc in uso
spaces_hn=' ' # in questo caso va inserito un numero di spazi pari alla differenza tra il numero di caratteri dell'hostname e la singola 'x' che lo rimpiazza. nell'esempio sono quindi 4
lanotherip= # eventuale altro ip assegnato ad un ulteriore dispositivo tra pc, router e apparato
spaces_oi='' # come sopra
# parametri per trace test
tracetarget=maya.ngi.it # modificare a piacere con indirizzo alternativo
traceperhop=180 # modificare a piacere (180 = 180 secondi = 180 passaggi per hop)
# variabili per download test
dlsite=debian.fastweb.it/debian/ # modificare con indirizzo alternativo da cui scaricare
dltarget=ls-lR.gz # modificare con file alternativo da scaricare
ftptrp=--no-passive-ftp # "--no-passive-ftp" per ftp-attivo; "--passive-ftp" per ftp-passivo (--passive-ftp non e' realmente necessario, serve solo a inserirlo nel report)
# inizio teste4a k.i.s.s.
echo '[code]----------------------------------------------------------------------------'
echo "teste4a k.i.s.s. - 0.4b - by sparayurji - $(uname -sr) - [$(date +%b%d)][$(date +%R)]"
echo '----------------------------------------------------------------------------'
if type mtr sed > /dev/null 2>&1; then # controllo se mtr e sed sono installati
# inizio trace test
echo "trace (su $tracetarget usando mtr v$(mtr --version | cut -d ' ' -f2,2)):"
mtr --no-dns -c $traceperhop -r $tracetarget | \sed -r -e "s/$e4aipnm.($e4aip1|$e4aip2|$e4aip3|$e4aip4|$e4aip5|$e4aip6)$spaces_ip/xxx.xxx.xxx.xxx/g" -e "s/${lanhostname}/x$spaces_hn/g" -e "s/${langateway}$spaces_gw/xxx.xxx.xxx.xxx/g" -e "s/${lanotherip}$spaces_oi/xxx.xxx.xxx.xxx/g"
else echo "[MTR E/O SED NON INSTALLATI, USCITA]"
exit 1
fi
echo '----------------------------------------------------------------------------'
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# inizio parte da commentare se si vuole disabilitare il rilevamento, ad esempio nel caso #
# la scheda usata per collegarsi all'apparato e4a fosse la stessa usata per la lan, e che #
# quest'ultima fosse in uso. #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# parametri per rilevamento banda occupata pre dl test
netcard=eth0 # modificare se scheda di rete diversa da eth0
bwmtime=20 # durata rilevamento banda occupata (20 = 10 secondi)
if type bwm-ng > /dev/null 2>&1; then # controllo se bwm-ng e' installato
# inizio rilevamento banda occupata
echo "[*] $(expr $(bwm-ng -I $netcard -A 2 -c $bwmtime -o csv 1 -T avg | tail -1 | cut -d ';' -f4,11 | cut -d '.' -f1,1) \/ 1024) KB/s gia' occupati in download (rilevati su $netcard usando bwm-ng $(bwm-ng -V | grep bwm-ng | cut -d ' ' -f5,5))"
else echo "[bwm-ng non installato, rilevamento banda gia' usata in dl non eseguito]"
fi
echo '----------------------------------------------------------------------------'
# # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# fine parte da commentare per disabilitare rilevamento #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if type wget > /dev/null 2>&1; then # controllo se wget e' installato
# inizio donwload test
echo "download ($dltarget da $dlsite usando wget v$(wget -V | sed -e '2,30d' | cut -d ' ' -f3,3)):"
echo "http: $(wget -O /dev/null 2>&1 http://$dlsite$dltarget | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s"
echo " ftp: $(wget $ftptrp -O /dev/null 2>&1 ftp://$dlsite$dltarget | tail -2 | cut -d ' ' -f3,4 | cut -c 2,2,3,4,5) KB/s ($ftptrp)"
else echo "[wget non installato, download test non eseguito]"
fi
echo '----------------------------------------------------------------------------'
echo "$profilo[/code]" |
|
| Top |
|
 |
| Tecsys |
Inviato: Lun Gen 25, 2010 7:57 pm Oggetto: |
|
|


Registrato: 17/07/09 15:07 Età: 24 Messaggi: 438 Residenza: Schio
|
| Non sarebbe una brutta idea pensare anche un test di Upload... |
|
| Top |
|
 |
| sparayurji |
Inviato: Lun Gen 25, 2010 8:23 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
| sparayurji ha scritto: |
una caratteristica che non sarebbe male inserire sarebbe un test dell'upload, btw. io non ho la piu' pallida idea di come implementarla, o meglio, non so dove ci si potrebbe appoggiare lato esterno, senza doversi registrare e cazzi vari. |
suggerimenti bene accetti. |
|
| Top |
|
 |
| ypkdani |
Inviato: Lun Gen 25, 2010 8:48 pm Oggetto: |
|
|

Registrato: 08/09/08 12:43
Messaggi: 457
|
| Scusa ma quali sono le dipendenze richieste e per il funzionamento basta creare un file .sh?? Grazie |
|
| Top |
|
 |
| sparayurji |
Inviato: Lun Gen 25, 2010 9:04 pm Oggetto: |
|
|
Registrato: 13/04/07 22:21
Messaggi: 737
|
ah gia', mi sono dimenticato di inserire due righe di testo sulle dipendenze...
ad ogni modo lo script verifica (con messaggio a video) se c'e' tutto il necessario.
btw, servono mtr, sed (queste due le ho definite come bloccanti) wget e bwm-ng.
per lanciarlo,
va salvato in un file di testo dal nome a piacere, che va poi reso eseguibile:
Codice: (da user) chmod +x nomefile
io poi di solito gli script che uso quotidianamente me li linko simbolicamente nella /usr/bin:
Codice: (da root) ln -s path/nomefile /usr/bin |
|
| Top |
|
 |
|
|
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|
|
|