4 $hostname = 'localhost'; # Host that serves the mSQL Database
5 $dbname = 'snmp'; # mySQL Database name
9 print "$0 [-H sqlhost] [-u user] [-p password] [-d] [-n]\n";
13 while ($#ARGV > -1 && $ARGV[0] =~ /^-/) {
16 $hostname = shift if (/-H/);
17 $user = shift if (/-u/);
18 $pass = shift if (/-p/);
19 $delete = 1 if (/-d/);
20 $verbose = 1 if (/-v/);
24 ( $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$hostname", $user, $pass))
25 or die "\tConnect not ok: $DBI::errstr\n";
27 # run a whole ton of setup stuff
30 DO("drop database if exists $dbname");
35 DO("create database $dbname");
40 # mysqldump -d ... snmp TABLE | perl -n -e 'while(<>) { last if (/CREATE/);} print "DO(\"$_"; while (<>) { last if (/\);/); print; } print ")\");\n";'
42 DO("CREATE TABLE hosterrors (
43 id int(11) DEFAULT '0' NOT NULL auto_increment,
45 errormsg varchar(128),
49 DO("CREATE TABLE hosttables (
50 id int(11) DEFAULT '0' NOT NULL auto_increment,
52 tablename varchar(64),
53 groupname varchar(32),
58 DO("CREATE TABLE usergroups (
59 id int(11) DEFAULT '0' NOT NULL auto_increment,
61 groupname varchar(32),
62 isadmin enum('N','Y') DEFAULT 'N',
66 DO("CREATE TABLE userprefs (
67 id int(11) DEFAULT '0' NOT NULL auto_increment,
69 groupname varchar(32),
70 tablename varchar(64),
71 columnname varchar(64),
72 displayit enum('N','Y') DEFAULT 'Y',
76 DO("CREATE TABLE hostgroups (
77 id int(11) DEFAULT '0' NOT NULL auto_increment,
79 groupname varchar(32),
80 sysObjectId varchar(255),
81 sysDescr varchar(255),
82 versionTag varchar(32),
83 sysUpTime varchar(64),
87 DO("CREATE TABLE oncall (
88 id int(11) DEFAULT '0' NOT NULL auto_increment,
90 groupname varchar(32),
97 DO("CREATE TABLE errorexpressions (
98 id int(11) DEFAULT '0' NOT NULL auto_increment,
99 tablename varchar(64),
100 expression varchar(255),
101 returnfield varchar(64),
105 DO("CREATE TABLE setup (
111 DO("CREATE TABLE authgroup (
112 id int(11) DEFAULT '0' NOT NULL auto_increment,
119 DO("CREATE TABLE authhost (
120 id int(11) DEFAULT '0' NOT NULL auto_increment,
127 # insert the standard ucd-snmp expressions
128 DO("insert into errorexpressions(tablename, expression, returnfield)
129 values('prTable', 'prErrorFlag > 0', 'prErrMessage')");
130 DO("insert into errorexpressions(tablename, expression, returnfield)
131 values('extTable', 'extResult > 0', 'extOutput')");
132 DO("insert into errorexpressions(tablename, expression, returnfield)
133 values('dskTable', 'dskErrorFlag > 0', 'dskErrMessage')");
134 DO("insert into errorexpressions(tablename, expression, returnfield)
135 values('laTable', 'laErrorFlag > 0', 'laErrMessage')");
136 DO("insert into errorexpressions(tablename, expression, returnfield)
137 values('fileTable', 'fileErrorFlag > 0', 'fileErrMessage')");
138 DO("insert into errorexpressions(tablename, expression, returnfield)
139 values('snmperrs', 'snmperrErrorFlag > 0', 'snmperrErrMessage')");
140 DO("insert into errorexpressions(tablename, expression, returnfield)
141 values('memory', 'memSwapError > 0', 'memSwapErrMessage')");
147 print $cmd,"\n" if ($verbose);
148 $dbh->do($cmd) if ($doit);