[rrd-users] Re: Pseudo Code

Owen DeLong owen at dixon.delong.sj.ca.us
Tue Jul 3 17:02:38 MEST 2001


> If your Sys Op is linux or any unix, yo can run this script to do this, of
> course you will need to define some vars like $rrd, $community and $router.
> I dont know it this run ok, I do it under notepad a i cant test this :) ... 
> i hope that you will find this usefull.
> 
:-)  Well, I see at least one error which I'll correct below...

> Code beginning:
> 
> #!/usr/bin/perl
> 
> 
> $router="your.router.ip";
> $community="your.router.community.naturally.named.PUBLIC";
> $loop=1;
> $rrd="yourouter.rrd"
> 
> while ($loop)
> 	{
> 	$in=`/usr/bin/snmpget $router $community 2.2.1.10.4`;
> 	$out=`/usr/bin/snmpget $router $community 2.2.1.16.4`;
> 	$exec=`/usr/bin/rrdtool update $rrd N:$in:$out`;

> 	sleep 5; <<<<WRONG... That's 5 seconds
	sleep 300; # This will sleep for 5 minutes.
> 	}
> 

However, there are two problems with this.  First, it ignores the fact that
snmpget takes time to execute, and second, it's a big waste to call rrdtool
as an external program from PERL (snmpget too, but I don't have the .PMs
for SNMP handy, so I can't provide that.  A better iteration might look
something like:

#!/usr/bin/perl

use RRDs;

$router="your.router.ip"
$community="your.router.readcommunity.naturally.named.PUBLIC";
$rrd="yourrouter.rrd";

while (1)
{
	$now = time()
	$in=  `/usr/bin/snmpget $router $community 2.2.1.10.4`;
	$out= `/usr/bin/snmpget $router $community 2.2.1.16.4`;
	$r=RRDs::update($rrd, "$now:$in:$out");
	if (RRDs::error ne "")
	{
		print STDERR "Couldn't store $now:$in:$out in $rrd.\n";
	}
	sleep ($now+300-time());
}

Owen

> Sebastian Arias
> Associate
> Infraestructure & Technology Services
> AT&T Latin America
> Tel. 5288-0173 - Fax 5288-0408
> 
> 
> -----Mensaje original-----
> De: Sharpe, Michael [mailto:MSharpe at gemplex.com]
> Enviado el: Martes, 03 de Julio de 2001 10:27 a.m.
> Para: Rrd-Users (E-mail)
> Asunto: [rrd-users] Pseudo Code
> 
> 
> 
> Can someone please explain to me what this pseudo code is?
> 
> while not the end of the universe
>    do
>       get result of
>          snmpget router community 2.2.1.10.4
>       into variable $in
>       get result of
>          snmpget router community 2.2.1.16.4
>       into variable $out
>       rrdtool update myrouter.rrd N:$in:$out
>       wait for 5 minutes
>    done
> 
> I am simply trying to get some OIDs in to a test database I created.
> Thanks.
> 
> Mike 
> 
> 
> --
> Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
> Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
> Archive     http://www.ee.ethz.ch/~slist/rrd-users
> WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi
> Este mensaje es confidencial. El mismo contiene información reservada 
> y que no puede ser difundida. Si usted ha recibido este e-mail 
> por error, por favor avísenos inmediatamente vía e-mail y tenga la 
> amabilidad de eliminarlo de su sistema; no deberá copiar el mensaje 
> ni divulgar su contenido a ninguna persona. Muchas gracias.
>  
> This message is confidential. It contains information that is privileged and
> legally exempt from disclosure. If you have received this e-mail by mistake,
> 
> please let us know immediately by e-mail and delete it from your system; 
> you should also not copy the message nor disclose its contents to anyone. 
> Thank You.
> 
> 
> --
> Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
> Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
> Archive     http://www.ee.ethz.ch/~slist/rrd-users
> WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi
> 
> 

--
Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the rrd-users mailing list