setupauth
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
- #!/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 VALUEn";
- 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::errstrn";
- 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: $retn" if ($verbose);
- if ($DBI::errstr) {
- print "db error ($ret): $DBI::errstrn";
- }
- return $ret;
- }