| #!/usr/local/bin/perl |
| |
| use DBI; |
| $hostname = 'localhost'; # Host that serves the mSQL Database |
| $dbname = 'snmp'; # mySQL Database name |
| $doit = 1; |
| |
| sub usage { |
| print "$0 [-H sqlhost] [-u user] [-p password] [-d] [-n]\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/); |
| $delete = 1 if (/-d/); |
| $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"; |
| |
| # run a whole ton of setup stuff |
| |
| if ($delete) { |
| $dbh->do("drop database if exists $dbname"); |
| } |
| |
| # here we go |
| |
| $dbh->do("create database $dbname"); |
| $dbh->do("use $dbname"); |
| $dbh->do("create table hosts (id integer auto_increment primary key, |
| name varchar(16), |
| community varchar(32))"); |
| $dbh->do("create table hosterrors (id integer auto_increment primary key, |
| host varchar(16), |
| errormsg varchar(128))"); |
| $dbh->do("create table hosttables (id integer auto_increment primary key, |
| host varchar(16), tablename varchar(64), |
| groupname varchar(32), |
| keephistory integer(2))"); |
| $dbh->do("create table usergroups (id integer auto_increment primary key, |
| user varchar(16), |
| groupname varchar(32), |
| isadmin enum('N','Y') default 'N')"); |
| $dbh->do("create table userprefs (id integer auto_increment primary key, |
| user varchar(16), |
| groupname varchar(32), |
| tablename varchar(64), |
| columnname varchar(64), |
| displayit enum('N','Y') default 'Y')"); |
| $dbh->do("create table hostgroups (id integer auto_increment primary key, |
| host varchar(16), |
| groupname varchar(32))"); |
| |
| $dbh->do("create table oncall (id integer auto_increment primary key, |
| user varchar(16), |
| groupname varchar(32), |
| email varchar(64), |
| days varchar(64), |
| hours varchar(64))"); |
| |
| $dbh->do("create table errorexpressions (id integer auto_increment primary key, |
| tablename varchar(64), |
| expression varchar(255), |
| returnfield varchar(64))"); |
| |
| # insert the standard ucd-snmp expressions |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('prEntry', 'prErrorFlag > 0', 'prErrMessage')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('extEntry', 'extResult > 0', 'extOutput')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('dskEntry', 'dskErrorFlag > 0', 'dskErrMessage')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('laEntry', 'laErrorFlag > 0', 'laErrMessage')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('fileEntry', 'fileErrorFlag > 0', 'fileErrMessage')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('snmperrs', 'snmperrErrorFlag > 0', 'snmperrErrMessage')"); |
| $dbh->do("insert into errorexpressions(tablename, expression, returnfield) |
| values('memory', 'memSwapError > 0', 'memSwapErrMessage')"); |
| |
| $dbh->disconnect(); |