howieD Skrevet 1. november 2010 Del Skrevet 1. november 2010 (endret) Hei, Jeg har laget følgende script som finner gj.snittshastighet på en nedlastet fil. Scriptet skal bare vise KB/s, og derfor må jeg konvertere wget speed som oppgis i MB til KB.. MB*1024 skulle løse den biffen, men det virker som at det gir issues. Problemet er at jeg har fått et par "spikes" på 30-40k i grafene mine som er himmelhøyt over båndbredden jeg egentlig har. Noen som kan se hva problemet er??? Easy way out hadde jo vært om wget kunne konfigureres til å bare vise nedhastigheten i KB/s og ikke konvertere til MB straks det går over 1024KB/s (= 1.0MB/s) Eventuelt har et annet script? Dette er muninscript, men selve koden under config delen kan jo kjøres uten munin. Noen tanker? #!/bin/sh if [ "$1" = "autoconf" ]; then echo yes exit 0 fi if [ "$1" = "config" ]; then echo 'graph_title Hastighet' echo 'graph_args --base 1000 -l 0 ' echo 'graph_vlabel nedlastingshastighet' echo 'graph_category download' echo 'graph_info Denne grafen viser nedhastighet til en fil paa 5MB.' echo 'down.label Hastighet i KB/s' echo 'down.draw LINE2' echo 'down.info Nåværende nedlastingshastighet.' exit 0 fi wget -o /root/temp/down.log -O /root/5MB.zip http://download.thinkbroadband.com/5MB.zip VERDI=$(cat /root/temp/down.log | grep '/s' | cut -d " " -f 3 | sed 's/(//') if [[ "$VERDI" =~ [0-9][.][0-9] ]]; then nyverdi=$(echo "scale=2; $VERDI * 1024" | bc) echo -n "down.value " echo $nyverdi else echo -n "down.value " echo "$VERDI" fi rm /root/temp/5MB.zip rm /root/temp/down.log Endret 7. november 2010 av Haavard82 Lenke til kommentar
NevroMance Skrevet 2. november 2010 Del Skrevet 2. november 2010 Eventuelt kan du jo ta tiden og hente ut størelsen på fila. Så bruker du det til å regne ut KB/s selv. Lenke til kommentar
asicman Skrevet 2. november 2010 Del Skrevet 2. november 2010 Hvis det ikke er krise å matche log fila to ganger: VERDI=$(sed -n s'X.* (\([0-9]*\) KB/s).*X\1Xp' /root/temp/down.log) if [ -n "$VERDI" ]; then echo $VERDI KB/s fi VERDI=$(sed -n s'X.* (\([0-9]*\) MB/s).*X\1Xp' /root/temp/down.log) if [ -n "$VERDI" ]; then VERDI=$(expr $VERDI \* 1024) echo $VERDI KB/s fi Lenke til kommentar
howieD Skrevet 2. november 2010 Forfatter Del Skrevet 2. november 2010 Aah! Hjertelig! Hva gjør sed funksjonen X.* og .*X\1Xp ??? Tusen takk for hjelpen! Dette fungerer, og nå får jeg la dette stå og gå et par dager for å se om det løser "spike" problemet. Lenke til kommentar
asicman Skrevet 3. november 2010 Del Skrevet 3. november 2010 Hva gjør sed funksjonen X.* og .*X\1Xp ??? Jeg bruker s for subsitute. Den er slik at den første karakteren blir delimiter. Det vanligste er å bruke '/' (faktisk så vanlig at mange tror at man bare kan bruke '/'). Men jeg valgte å bruke X siden jeg skulle matche en '/' og ville slippe quoting av '/'. \1 er det som matcher den første gruppen avgrenset av \(\). \2 vil matche den neste osv. $ echo hello |sed 's/\(..\)ll\(.*\)/\1-\2/' he-o $ echo fellow |sed 'sB\(..\)ll\(.*\)B\1-\2B' fe-ow Lenke til kommentar
howieD Skrevet 7. november 2010 Forfatter Del Skrevet 7. november 2010 (endret) Da har jeg gjort det om til Perlscript fordi det ble for mange brudd på det første scriptet. Jeg vet ikke hvorfor det forrige scriptet feilet, men nå har jeg snekret på nytt, og kommet opp med et script som ikke gir meg noen brudd. Nedenfor ser dere også hvordan output fra wget ser ut: Til info så har jeg laget dette scriptet for å logge hvor crappy Get Internet er, og har planer om å vise dem grafen etter at den har gått en stund. Vi har XL abonnement og burde derfor få langt høyere hastighet enn det som vises nedenfor. Er dritlei Noen kommentarer til scriptet????? Output fra wget: 2010-11-07 01:35:11 (534 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] 2010-11-07 01:40:09 (698 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] 2010-11-07 01:45:10 (661 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] 2010-11-07 01:46:45 (834 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] 2010-11-07 01:50:15 (625 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] 2010-11-07 01:55:16 (367 KB/s) - `/root/temp/5MB.zip' saved [5242880/5242880] #!/usr/bin/perl if ( $ARGV[0] eq "autoconfig" ){ print "yes"; exit 0; } if ( $ARGV[0] eq "config" ){ print "graph_title Hastighet graph_args --base 1000 -l 0 graph_vlabel nedlastingshastighet graph_category nedlasting graph_info Denne grafen viser nedhastighet til en fil paa 5MB. nedlasting.label Hastighet i KB/s nedlasting.draw LINE2 nedlasting.info Nåværende nedlastingshastighet. "; exit 0; } `wget -o /root/temp/down.log -O /root/temp/5MB.zip http://download.thinkbroadband.com/5MB.zip`; my $verdiMB = `cat /root/temp/down.log | grep 'MB/s)' | cut -d " " -f 3 | sed 's/\(//'`; # Nedlasting i MB/s my $verdiKB = `cat /root/temp/down.log | grep 'KB/s)' | cut -d " " -f 3 | sed 's/\(//'`; # Nedlasting i KB/s chomp $verdiMB; chomp $verdiKB; my $regexMB = '[0-9]*\.[0-9]*'; my $regexKB = '[0-9]*'; if ( $verdiMB =~ m/$regexMB/ ) { my $nyverdi = $verdiMB * 1024; chomp $nyverdi; print "nedlasting.value ", $nyverdi, "\n"; }elsif ( $verdiKB =~ m/$regexKB/ ){ chomp $verdiKB; print "nedlasting.value ", $verdiKB, "\n"; } my $loggfil = "/root/temp/logs/log.txt"; unless ( -e $loggfil ){ `touch $loggfil`; } if ( -e $loggfil ){ `cat /root/temp/down.log | grep '/s)' >> /root/temp/logs/log.txt`; `rm /root/temp/5MB.zip /root/temp/down.log`; } Skjermdump: Endret 7. november 2010 av Haavard82 Lenke til kommentar
asicman Skrevet 7. november 2010 Del Skrevet 7. november 2010 Bra du fikk det til å virke. Jeg har kabel-TV i fra Get og er ikke spesielt imponert. Jeg ser ikke så mye på TV, men det er utrolig irriterende å se og høre på digitale drop-outs. Det kan virke som om dekoder-boksen har et problem med minnelekasje e.l. da bilde og lyd kan stoppe nesten helt opp etter en tids bruk, men det kommer seg igjen etter en re-boot. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå