#!/usr/bin/perl use DBI; $hostname = 'localhost'; # Host that serves the mSQL Database $dbname = 'snmp'; # mySQL Database name $doit = 1; sub usage { print "$0 [-H host] [-u user] [-p password] [-v] [-h] [-n] [-g groupname] [-m machinename] TOKEN VALUE\n"; exit 0; } while ($#ARGV > -1 && $ARGV[0] =~ /^-/) { $_ = shift @ARGV; usage if (/-h/); $hostname = shift if (/-H/); $user = shift if (/-u/); $pass = shift if (/-p/); $group = shift if (/-g/); $machine = shift if (/-m/); $verbose = 1 if (/-v/); $doit = 0 if (/-n/); } ( $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$hostname", $user, $pass)) or die "\tConnect not ok: $DBI::errstr\n"; if (defined($machine)) { $table = "authhost"; $group = $machine; } else { $table = "authgroup"; $group = "default" if (!defined($group)); } $token = shift; $value = shift; while(defined($value)) { if (DO("select * from $table where lookup = '$group' and varcol = '$token'") eq "0E0") { DO("insert into $table(lookup, varcol, valcol) values('$group', '$token', '$value')"); } else { DO("update $table set valcol = '$value' where lookup = '$group' and varcol = '$token'"); } $token = shift; $value = shift; } $dbh->disconnect(); sub DO { my $cmd = shift; print $cmd,"\n" if ($verbose); my $ret = $dbh->do($cmd) if ($doit); print " returned: $ret\n" if ($verbose); if ($DBI::errstr) { print "db error ($ret): $DBI::errstr\n"; } return $ret; }