index 063f2df0846fa6630f334446034bf98ac27eb175..d2701e95075db6c2af19f676614b34b1148a10b5 100755 (executable)
-#! /usr/local/bin/perl -w
+#!/usr/local/bin/perl -w
#
# check_rpc plugin for nagios
#
#
# initial version: 3 May 2000 by Truongchinh Nguyen and Karl DeBisschop
# Modified May 2002 Subhendu Ghosh - support for ePN and patches
-# current status: $Revision$
#
# Copyright Notice: GPL
-# $Id$
#
use strict;
my ($array_ref,$test,$element,@progkeys,$proto,$a,$b);
my ($opt_V,$opt_h,$opt_C,$opt_p,$opt_H,$opt_c,$opt_u,$opt_t);
my ($line, @progvers, $response2,$response3);
-$opt_V = $opt_h = $opt_C = $opt_p = $opt_H = $opt_c = $opt_u = $opt_t ='';
-$state = 'OK';
+$opt_V = $opt_h = $opt_C = $opt_p = $opt_H = $opt_u = $opt_t ='';
+$state = 'UNKNOWN';
$progver = $response=$response2= $response3 ='';
$PROGNAME = "check_rpc";
sub print_usage ();
sub in ($$);
-$ENV{'BASH_ENV'}='';
+$ENV{'BASH_ENV'}='';
$ENV{'ENV'}='';
$ENV{'PATH'}='';
+$ENV{'LC_ALL'}='C';
#Initialise protocol for each progname number
-# 'u' for UDP, 't' for TCP
+# 'u' for UDP, 't' for TCP
$proto[10003]='u';
$proto[10004]='u';
$proto[10007]='u';
use Getopt::Long;
Getopt::Long::Configure('bundling');
GetOptions(
- "V" => \$opt_V, "version" => \$opt_V,
- "h" => \$opt_h, "help" => \$opt_h,
- "C=s" => \$opt_C, "command=s" => \$opt_C,
- "p=i" => \$opt_p, "port=i" => \$opt_p,
- "H=s" => \$opt_H, "hostname=s" => \$opt_H,
- "c=s" => \$opt_c, "progver=s" => \$opt_c,
- "v+" => \$verbose, "verbose+" => \$verbose,
- "u" => \$opt_u, "udp" => \$opt_u,
- "t" => \$opt_t, "tcp" => \$opt_t
- );
+ "V" => \$opt_V, "version" => \$opt_V,
+ "h" => \$opt_h, "help" => \$opt_h,
+ "C=s" => \$opt_C, "command=s" => \$opt_C,
+ "p=i" => \$opt_p, "port=i" => \$opt_p,
+ "H=s" => \$opt_H, "hostname=s" => \$opt_H,
+ "c=s" => \$opt_c, "progver=s" => \$opt_c,
+ "v+" => \$verbose, "verbose+" => \$verbose,
+ "u" => \$opt_u, "udp" => \$opt_u,
+ "t" => \$opt_t, "tcp" => \$opt_t
+);
# -h means display verbose help screen
if ($opt_h) { print_help(); exit $ERRORS{'OK'}; }
# -V means display version number
-if ($opt_V) {
- print_revision($PROGNAME,'$Revision$ ');
- exit $ERRORS{'OK'};
+if ($opt_V) {
+ print_revision($PROGNAME,'@NP_VERSION@');
+ exit $ERRORS{'OK'};
}
# Hash containing all RPC program names and numbers
}else{
print "Version $vers is not an integer\n" if $verbose;
}
-
+
}
}else{
get_rpcinfo();
while ( $line = <CMD> ) {
printf "$line " if $verbose;
chomp $line;
-
+
if ( $line =~ /program $prognum version ([0-9]*) ready and waiting/ ) {
$response .= " version $1";
- $state = 'OK' unless $state ne 'OK';
+ $state = 'OK' unless $state ne 'UNKNOWN';
print "1:$response \n" if $verbose;
}
sub print_help() {
- print_revision($PROGNAME,'$Revision$ ');
+ print_revision($PROGNAME,'@NP_VERSION@');
print "Copyright (c) 2002 Karl DeBisschop/Truongchinh Nguyen/Subhendu Ghosh\n";
print "\n";
print "Check if a rpc service is registered and running using\n";