aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xnms/prototype/foo.pl20
1 files changed, 18 insertions, 2 deletions
diff --git a/nms/prototype/foo.pl b/nms/prototype/foo.pl
index 0dfd8ba..2ba0b1e 100755
--- a/nms/prototype/foo.pl
+++ b/nms/prototype/foo.pl
@@ -4,10 +4,13 @@ use strict;
use warnings;
use SNMP;
use Data::Dumper;
+use DBI;
+use lib '/srv/tgmanage/include';
+use nms;
SNMP::initMib();
SNMP::addMibDirs("/srv/tgmanage/mibs");
-#SNMP::addMibDirs("/tmp/tmp.X6Xt4LvFKn/v2");
+SNMP::addMibDirs("/tmp/tmp.esQYrkg9MW/v2");
SNMP::loadModules('SNMPv2-MIB');
SNMP::loadModules('ENTITY-MIB');
SNMP::loadModules('IF-MIB');
@@ -15,7 +18,10 @@ SNMP::loadModules('LLDP-MIB');
SNMP::loadModules('IP-MIB');
SNMP::loadModules('IP-FORWARD-MIB');
+our $row=7;
my $sess = SNMP::Session->new(DestHost => 'localhost', Community => 'public', Version => 2, UseEnums => 1);
+my $dbh = nms::db_connect();
+my $sth = $dbh->prepare("INSERT INTO snmp (switch,data) VALUES((select switch from switches where sysname=?), ?)");
my @getThese = [['ifTable'], ['ifXTable']];
@@ -24,6 +30,7 @@ while(1) {
SNMP::MainLoop(10);
}
+
sub callback{
my @top = $_[0];
my %tree;
@@ -33,6 +40,9 @@ sub callback{
for my $var (@{$ret}) {
for my $inner (@{$var}) {
my ($tag,$type,$name,$iid, $val) = ( $inner->tag ,$inner->type , $inner->name, $inner->iid, $inner->val);
+ if ($tag eq "ifPhysAddress") {
+ next;
+ }
$tree{$iid}{$tag} = $val;
if ($tag eq "ifIndex") {
push @nicids, $iid;
@@ -44,5 +54,11 @@ sub callback{
for my $nic (@nicids) {
$nics{$tree{$nic}{'ifName'}} = $tree{$nic};
}
- print Dumper(\%nics);
+ print "row: " . $row . "\n";
+ $sth->execute("e" . $row . "-1", JSON::XS::encode_json(\%nics));
+ if ($row > 50) {
+ $row = 7;
+ } else {
+ $row += 2;
+ }
}