From c47662b146f66751af1aca2e76869f1cf858cbb6 Mon Sep 17 00:00:00 2001 From: Stanley Hopcroft Date: Thu, 25 Nov 2004 03:01:23 +0000 Subject: [PATCH] update check_hprsc.pl for Net-SNMP versions >=4 git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@937 f882894a-f735-0410-b71e-b25c423dba1c --- contrib/check_hprsc.pl | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/contrib/check_hprsc.pl b/contrib/check_hprsc.pl index 23e6261..7a85650 100755 --- a/contrib/check_hprsc.pl +++ b/contrib/check_hprsc.pl @@ -23,7 +23,7 @@ $ENV{'BASH_ENV'}=""; if (-e "/usr/bin/snmpwalk") { $snmpwalk = "/usr/bin/snmpwalk"; } elsif (-e "/usr/local/bin/snmpwalk") { - $snmpwalk = "/usr/local/snmpwalk"; + $snmpwalk = "/usr/local/bin/snmpwalk"; } @@ -45,41 +45,47 @@ GetOptions( "check-filesystem" => \$chk_fs, "community=s" => \$target_community, "filesystemID1=i" => \$fsid1_opt, "filesystem=s" => \$fs_opt, + "protocol:s" => \$proto_opt, "warning=i" => \$warning_opt, "critical=i" => \$critical_opt); +$proto_opt = 1 + unless $proto_opt == 1 || + $proto_opt == '2c' || + $proto_opt == 3; + if ($chk_fs) { - walk_data($snmpwalk, $target_host, $target_community, $mounted_OID ); - walk_data($snmpwalk, $target_host, $target_community, $totalspace_OID ); - walk_data($snmpwalk, $target_host, $target_community, $freespace_OID ); check_filesystem($fs_opt, $warning_opt, $critical_opt); + walk_data($snmpwalk, $target_host, $target_community, $mounted_OID,$proto_opt ); + walk_data($snmpwalk, $target_host, $target_community, $totalspace_OID,$proto_opt ); + walk_data($snmpwalk, $target_host, $target_community, $freespace_OID,$proto_opt ); check_filesystem($fs_opt, $warning_opt, $critical_opt); } elsif ($show_fs) { - walk_data($snmpwalk, $target_host, $target_community, $filesystemID1_OID); - walk_data($snmpwalk, $target_host, $target_community, $mounted_OID ); - walk_data($snmpwalk, $target_host, $target_community, $path_OID); + walk_data($snmpwalk, $target_host, $target_community, $filesystemID1_OID,$proto_opt); + walk_data($snmpwalk, $target_host, $target_community, $mounted_OID,$proto_opt ); + walk_data($snmpwalk, $target_host, $target_community, $path_OID,$proto_opt); show_filesystem(); } elsif ($chk_fsid){ $totalspace_fsID_OID = "$totalspace_OID.$fsid1_opt"; $freespace_fsID_OID = "$freespace_OID.$fsid1_opt"; - walk_data($snmpwalk, $target_host, $target_community, $totalspace_fsID_OID); - walk_data($snmpwalk, $target_host, $target_community, $freespace_fsID_OID); + walk_data($snmpwalk, $target_host, $target_community, $totalspace_fsID_OID,$proto_opt); + walk_data($snmpwalk, $target_host, $target_community, $freespace_fsID_OID,$proto_opt); check_filesystemID1($fsid1_opt, $warning_opt, $critical_opt); } elsif ($chk_cpu) { - get_cpu_load($snmpwalk, $target_host, $target_community, $cpu_5min_OID); + get_cpu_load($snmpwalk, $target_host, $target_community, $cpu_5min_OID,$proto_opt); check_cpu_5min($cpu, $warning_opt, $critical_opt); } else { print "\n\nUsage:\n"; print "Checking 5-min CPU Load:\n"; - print " $0 --check-cpu -warning --critical --host --community \n\n"; + print " $0 --check-cpu -warning --critical --host --community --protocol \n\n"; print "Checking local filesystem mounted on a host:\n"; - print " $0 --show-filesystems --host --community \n\n"; + print " $0 --show-filesystems --host --community --protocol \n\n"; print "Checking by filesystem name:\n"; - print " $0 --check-filesystem --filesystem --warning <% used space> --critical <% used space> --host --community \n\n"; + print " $0 --check-filesystem --filesystem --warning <% used space> --critical <% used space> --host --community --protocol \n\n"; print "Checking by filesystem ID:\n"; - print " $0 --check-filesystemID --filesystemID --warning <% used space> --critical <% used space> --host --community \n\n"; + print " $0 --check-filesystemID --filesystemID --warning <% used space> --critical <% used space> --host --community --protocol \n\n"; } sub get_cpu_load { - my ($snmpwalk, $target_host, $target_community, $OID) = @_; + my ($snmpwalk, $target_host, $target_community, $OID,$vers) = @_; die "cannot fork: $!" unless defined($pid = open(SNMPWALK, "-|")); if ($pid) { # parent @@ -89,13 +95,13 @@ sub get_cpu_load { } close(SNMPWALK) or warn "kid exited $?"; } else { # child - exec($snmpwalk,$target_host,$target_community,$OID) or die "can't exec program: $!"; + exec($snmpwalk,'-c',$target_community,'-v',$vers,$target_host,$OID) or die "can't exec program: $!"; } } sub walk_data { #This function queries the SNMP daemon for the specific OID - my ($snmpwalk, $target_host, $target_community, $OID) = @_; + my ($snmpwalk, $target_host, $target_community, $OID,$vers) = @_; die "cannot fork: $!" unless defined($pid = open(SNMPWALK, "-|")); @@ -106,7 +112,7 @@ sub walk_data { } close(SNMPWALK) or warn "kid exited $?"; } else { # child - exec($snmpwalk,$target_host,$target_community,$OID) or die "can't exec program: $!"; + exec($snmpwalk,'-c',$target_community,'-v',$vers,$target_host,$OID) or die "can't exec program: $!"; } } -- 2.30.2