文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>check_mysql_number_tables.pl

check_mysql_number_tables.pl

时间:2009-04-24  来源:sinxadmin

#!/usr/bin/perl

#####################################################################


#


require 5.004;

sub usage;

my $TIMEOUT = 15;
my $MYSQL = "mysql";

my %ERRORS = ('UNKNOWN' , '-1',
              'OK' , '0',
              'WARNING', '1',
              'CRITICAL', '2');

my $host = shift || &usage(%ERRORS);
my $user = shift || &usage(%ERRORS);
my $pass = shift || "";
my $TABLE = shift || "mysql";
my $warn = shift || 20;
my $crit = shift || 30;

my $state = "OK";
my $count = 0;
my $status = "";

# Just in case of problems, let's not hang Nagios

$SIG{'ALRM'} = sub {
     print ("ERROR: No response from MySQL server (alarm)\n");
     exit $ERRORS{"UNKNOWN"};
};
alarm($TIMEOUT);

open (OUTPUT, "$MYSQL -h $host -u $user --password=\"$pass\" $TABLE -e 'show tables;' | wc -l 2>&1 |");

while (<OUTPUT>) {
  if (/failed/) { $state="CRITICAL"; s/.*://; last; }
  chomp;
  $count = $_ - 1;
}

if ($count >= $warn) { $state = "WARNING"; }
if ($count >= $crit) { $state = "CRITICAL"; }

$status = "Tables $state - $count Tables\n";

print $status;
exit $ERRORS{$state};

sub usage {
   print "Required arguments not given!\n\n";
   print "MySQL table count plugin for Nagios, V1.01\n";
   print "Copyright (c) 2005 Brian Zammit \n\n";
   print "Usage: check_mysql.pl <host> <user> [<pass> <table> [<warn> [<crit>]]]\n\n";
   print " <pass> = password to use for <user> at <host>\n";
   print " <table> = table to use\n";
   print " <warn> = number of threads to warn us about\n";
   print " <crit> = number of threads to scream at us about\n";
   exit $ERRORS{"UNKNOWN"};
}

相关阅读 更多 +
排行榜 更多 +
泽塔奥特曼变身器模拟器手机版下载

泽塔奥特曼变身器模拟器手机版下载

角色扮演 下载
假面骑士ZZZ模拟器SWF下载

假面骑士ZZZ模拟器SWF下载

角色扮演 下载
军团再临安卓版下载

军团再临安卓版下载

策略塔防 下载