in reply to strange snmp question
try working with get_next_request() .. it works better ;-)
i'll show sample example which (first of all works) I use to check the memory on cisco routers:
#!/usr/local/bin/perl # use Net::SNMP qw(oid_lex_sort oid_base_match SNMP_VERSION_1 DEBUG_ALL +); use strict; my $ip = scalar @ARGV >= 1 ? $ARGV[0] : "192.168.0.1"; my $community = scalar @ARGV == 2 ? $ARGV[1] : "secret"; my ($s,$e)=Net::SNMP->session(-hostname=> $ip, -community =>$community +); if (!defined($s)) { printf("error: %s.\n", $e); exit 1; } print "-"x78,"\n"; print "Search memoryPools for: $ip (community: $community)\n"; print "-"x78,"\n"; my $oid = ".1.3.6.1.4.1.9.9.42.1.1.11"; my @args = ( -varbindlist => [$oid]); while (defined($s->get_next_request(@args))) { $_ = (keys(%{$s->var_bind_list}))[0]; if (!oid_base_match($oid, $_)) { last; } printf("rttMonApplFreeMemLowWaterMark: %s\n", $ +s->var_bind_list->{$_}); @args = (-varbindlist => [$_]); } $oid = ".1.3.6.1.4.1.9.9.48.1.1.1.6"; my @args = ( -varbindlist => [$oid]); while (defined($s->get_next_request(@args))) { $_ = (keys(%{$s->var_bind_list}))[0]; if (!oid_base_match($oid, $_)) { last; } printf("ciscoMemoryPoolFree: %s\n", $ +s->var_bind_list->{$_}); @args = (-varbindlist => [$_]); } print "-"x78,"\n"; $s->close();
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: strange snmp question
by Anonymous Monk on Oct 25, 2004 at 08:42 UTC | |
by insaniac (Friar) on Oct 25, 2004 at 08:52 UTC |