📄 setupdb
字号:
#!/usr/bin/perluse 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 stuffif ($delete) { DO("drop database if exists $dbname");}# here we goDO("create database $dbname");DO("use $dbname");# tables dumped with## mysqldump -d ... snmp TABLE | perl -n -e 'while(<>) { last if (/CREATE/);} print "DO(\"$_"; while (<>) { last if (/\);/); print; } print ")\");\n";'DO("CREATE TABLE hosterrors ( id int(11) DEFAULT '0' NOT NULL auto_increment, host varchar(64), errormsg varchar(128), PRIMARY KEY (id))");DO("CREATE TABLE hosttables ( id int(11) DEFAULT '0' NOT NULL auto_increment, host varchar(64), tablename varchar(64), groupname varchar(32), keephistory int(2), PRIMARY KEY (id))");DO("CREATE TABLE usergroups ( id int(11) DEFAULT '0' NOT NULL auto_increment, user varchar(16), groupname varchar(32), isadmin enum('N','Y') DEFAULT 'N', PRIMARY KEY (id))");DO("CREATE TABLE userprefs ( id int(11) DEFAULT '0' NOT NULL auto_increment, user varchar(16), groupname varchar(32), tablename varchar(64), columnname varchar(64), displayit enum('N','Y') DEFAULT 'Y', PRIMARY KEY (id))");DO("CREATE TABLE hostgroups ( id int(11) DEFAULT '0' NOT NULL auto_increment, host varchar(64), groupname varchar(32), sysObjectId varchar(255), sysDescr varchar(255), versionTag varchar(32), sysUpTime varchar(64), PRIMARY KEY (id))");DO("CREATE TABLE oncall ( id int(11) DEFAULT '0' NOT NULL auto_increment, user varchar(16), groupname varchar(32), email varchar(64), days varchar(64), hours varchar(64), PRIMARY KEY (id))");DO("CREATE TABLE errorexpressions ( id int(11) DEFAULT '0' NOT NULL auto_increment, tablename varchar(64), expression varchar(255), returnfield varchar(64), PRIMARY KEY (id))");DO("CREATE TABLE setup ( lookup varchar(64), varcol varchar(128), valcol varchar(128))");DO("CREATE TABLE authgroup ( id int(11) DEFAULT '0' NOT NULL auto_increment, lookup varchar(64), varcol varchar(128), valcol varchar(128), PRIMARY KEY (id))");DO("CREATE TABLE authhost ( id int(11) DEFAULT '0' NOT NULL auto_increment, lookup varchar(64), varcol varchar(128), valcol varchar(128), PRIMARY KEY (id))");# insert the standard ucd-snmp expressions DO("insert into errorexpressions(tablename, expression, returnfield) values('prTable', 'prErrorFlag > 0', 'prErrMessage')");DO("insert into errorexpressions(tablename, expression, returnfield) values('extTable', 'extResult > 0', 'extOutput')");DO("insert into errorexpressions(tablename, expression, returnfield) values('dskTable', 'dskErrorFlag > 0', 'dskErrMessage')");DO("insert into errorexpressions(tablename, expression, returnfield) values('laTable', 'laErrorFlag > 0', 'laErrMessage')");DO("insert into errorexpressions(tablename, expression, returnfield) values('fileTable', 'fileErrorFlag > 0', 'fileErrMessage')");DO("insert into errorexpressions(tablename, expression, returnfield) values('snmperrs', 'snmperrErrorFlag > 0', 'snmperrErrMessage')");DO("insert into errorexpressions(tablename, expression, returnfield) values('memory', 'memSwapError > 0', 'memSwapErrMessage')");$dbh->disconnect();sub DO { my $cmd = shift; print $cmd,"\n" if ($verbose); $dbh->do($cmd) if ($doit);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -