>> check the environment of the users launching the script. Which user do you >> "use" to launch the script locally? And which one from remote? > > On nagios server I have tried executing it as root user as well as > nagios user but the problem remains. >
Hello all, I made a mistake in the plug-in. Both Perl script and KSH script were residing in the same directory. When executing locally it knew where to look for external shell script. The code was as follows: my $PIPED = qx# ksh check_oracle_services.sh $SERVICE #; But when executed from nagios server, NRPE daemon on monitored host wouldn't know where to look for the shell script hence the wrong output. Adding absolute path to the check_oracle_services.sh fixed the problem my $PIPED = qx# ksh /home/nagios/nrpe/libexec/check_oracle_services.sh $SERVICE #; The new code is as follows (may be someone would find it useful): check_oracle_services.pl ------------------------------------ #!/usr/bin/env perl use strict; use Getopt::Std; my %return_value = ( OK => 0, CRIT => 2, UNKNOWN => 3 ); my $message = "nagios"; my $exit_status; my %opt=(); getopts("p:h", \%opt); sub usage(){ print "Usage: $0 -p service_name\n"; exit $return_value{'UNKNOWN'}; } usage() if defined $opt{'h'}; my $SERVICE = $opt{'p'} if defined $opt{'p'} || usage(); my $PIPED = qx# ksh /home/nagios/nrpe/libexec/check_oracle_services.sh $SERVICE #; if ($PIPED =~ /OFFLINE/g) { $exit_status = $return_value{'CRIT'}; $message = "Critical: $SERVICE is not running."; } else { $exit_status = $return_value{'OK'}; $message = "OK: $SERVICE is running."; } print "$message\n"; exit $exit_status; ------------------------------------ check_oracle_services.sh ------------------------------------ #!/usr/bin/ksh RSC_KEY=$1 /oracle/crs_home/bin/crs_stat -u | awk \ 'BEGIN { FS="="; state = 0; } \ $1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1}; \ state == 0 {next;} \ $1~/TARGET/ && state == 1 {apptarget = $2; state=2;} \ $1~/STATE/ && state == 2 {appstate = $2; state=3;} \ state == 3 {printf "%-45s %-18s\n", appname, appstate; state=0;}' Sorry for the inconvenience caused. Thanks ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null