setupauth
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #!/usr/bin/perl
  2. use DBI;
  3. $hostname = 'localhost';          # Host that serves the mSQL Database
  4. $dbname = 'snmp';                 # mySQL Database name
  5. $doit = 1;
  6. sub usage {
  7.     print "$0 [-H host] [-u user] [-p password] [-v] [-h] [-n] [-g groupname] [-m machinename] TOKEN VALUEn";
  8.     exit 0;
  9. }
  10. while ($#ARGV > -1 && $ARGV[0] =~ /^-/) {
  11.     $_ = shift @ARGV;
  12.     usage if (/-h/);
  13.     $hostname = shift if (/-H/);
  14.     $user = shift if (/-u/);
  15.     $pass = shift if (/-p/);
  16.     $group = shift if (/-g/);
  17.     $machine = shift if (/-m/);
  18.     $verbose = 1 if (/-v/);
  19.     $doit = 0 if (/-n/);
  20. }
  21. ( $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$hostname", $user, $pass))
  22.     or die "tConnect not ok: $DBI::errstrn";
  23. if (defined($machine)) {
  24.     $table = "authhost";
  25.     $group = $machine;
  26. } else {
  27.     $table = "authgroup";
  28.     $group = "default" if (!defined($group));
  29. }
  30. $token = shift;
  31. $value = shift;
  32. while(defined($value)) {
  33.     if (DO("select * from $table where lookup = '$group' and varcol = '$token'") eq "0E0") {
  34. DO("insert into $table(lookup, varcol, valcol) values('$group', '$token', '$value')");
  35.     } else {
  36. DO("update $table set valcol = '$value' where lookup = '$group' and varcol = '$token'");
  37.     }
  38.     $token = shift;
  39.     $value = shift;
  40. }
  41. $dbh->disconnect();
  42. sub DO {
  43.     my $cmd = shift;
  44.     print $cmd,"n" if ($verbose);
  45.     my $ret = $dbh->do($cmd) if ($doit);
  46.     print "  returned: $retn" if ($verbose);
  47.     if ($DBI::errstr) {
  48. print "db error ($ret): $DBI::errstrn";
  49.     }
  50.     return $ret;
  51. }