Monitoriza en tiempo real la velocidad de tu conexion


Este sencillo perlscript analiza /proc/dev/net cada segundo y te dice a cuantos KiloBytes por segundo te están llegando los datos por un interface determinado. Además te hace una representación “gráfica”, ya verás 😉

Bueno, creia que ya habia puesto este script por aquí pero no lo encuentro por ninguna parte… lo pongo ahora.

Es una versión espartana y en Perl del grafico que saca el Kppp del KDE, hace exactamente lo mismo solo que en modo texto e imprimiendo cada vez la cifra exacta de KBps.

#!/usr/bin/perl -w

# Nota: estos dos parametros puede introducirlos el usuario
# en la linea de comandos, por este orden, sobreescribiendo
# los valores por defecto para esa ejecución.

$def_int=”eth0″; # interface que analizamos por defecto
$def_sca=500; # escala del grafico por defecto

# Lo que viene a continuación no deberia ser modificado
# por los usuarios normales. De todas formas yo nunca
# dejaria que me llamasen usuario normal ]:-)

$pnd=”/proc/net/dev”;
$int=($ARGV[0])?($ARGV[0]):($def_int);
$seg=1;
$kil=1000;
$kps=$kil*$seg;
$sca=($ARGV[1])?($ARGV[1]):($def_sca);

# Función que obtiene el numero total de bytes recibidos
# por el interface

sub getbytes
{
open (PND, “<$pnd”);
while(<PND>) {
if(/\s*$int:\s*(\d+)\s*/) {
return $1;
}
}
close PND;
}

# Programa principal

print “Esto analiza $pnd a intervalos de $seg segundo(s) “;
print “y para cada intervalo\n”;
print “calcula la velocidad de bajada por el $int “;
print “en KiloBytes/segundo\n”;

$x=&getbytes
while(1) {
sleep $seg;
$z=($y=&getbytes)-$x;
foreach (0..$z/$sca) { print ‘#’ }
printf(“%10.5f KBps\n”, $z/$kps);
$x=$y;
}

Es importante entender que este script da la velocidad a nivel de interface, con lo que también está contando el overhead que supone TCP/IP (unos 40 bytes por paquete), etc. Vamos, que si te bajas un fichero los “datos utiles” te llegan en realidad un poco más lentos de lo que marca el programa.

Si alguien se aburre puede intentar como ejercicio tener en cuenta el numero de paquetes recibidos (también puede sacarse de /proc/net/dev) y descontar el overhead para obtener directamente la velocidad en KBps de “datos utiles” 😉

Disfrutadlo!

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=410 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.