aboutsummaryrefslogtreecommitdiff
path: root/contrib/check_sap.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check_sap.sh')
-rwxr-xr-xcontrib/check_sap.sh45
1 files changed, 32 insertions, 13 deletions
diff --git a/contrib/check_sap.sh b/contrib/check_sap.sh
index eadf977e..726d7502 100755
--- a/contrib/check_sap.sh
+++ b/contrib/check_sap.sh
@@ -3,10 +3,17 @@
#
# CHECK_SAP plugin for Nagios
#
-# Written by Karel Salavec (karel.salavec@ct.cz)
-# Last Modified: 20Apr2000
+# Originally Written by Karel Salavec (karel.salavec@ct.cz)
+#
+# Last Modified: 26 May 2003 by Tom De Blende (tom.deblende@village.uunet.be)
+#
+# Version 1.1 (Tom De Blende)
+# - Added output to feed to Nagios instead of just an exit code.
+# - Changed info on where to get the SAP client tools for Linux.
#
-# Command line: CHECK_SAP <typ_of_check> <param1> <param2> [<param3>]
+# Version 1.0 (Karel Salavec)
+#
+# Command line: check_sap.sh <typ_of_check> <param1> <param2> [<param3>]
#
# Description:
# This plugin will attempt to open an SAP connection with the message
@@ -14,11 +21,9 @@
# It need the sapinfo program installed on your server (see Notes).
#
# Notes:
-# - This plugin requires that the saprfc-devel-45A-1.i386.rpm (or higher)
-# package be installed on your machine. Sapinfo program
-# is a part of this package.
-# - You can find this package at SAP ftp server in
-# /general/misc/unsupported/linux
+# - This plugin requires that the sapinfo program is installed.
+# - Sapinfo is part of a client package that can be found
+# at ftp://ftp.sap.com/pub/linuxlab/contrib/.
#
#
# Parameters:
@@ -39,8 +44,16 @@
#
##############################################################################
+sapinfocmd='/usr/sap/rfcsdk/bin/sapinfo'
+grepcmd=`which grep`
+wccmd=`which wc`
+cutcmd=`which cut`
+awkcmd=`which awk`
+
+##############################################################################
+
if [ $# -lt 3 ]; then
-echo "Need min. 3 parameters"
+echo "Usage: $0 <typ_of_check> <param1> <param2> [<param3>]"
exit 2
fi
@@ -58,13 +71,19 @@ case "$1"
params="ashost=$2 sysnr=$3"
;;
*)
- echo "The first parametr must be ms (message server) or as (application server)!"
+ echo "The first parameter must be ms (message server) or as (application server)!"
exit 2
;;
esac
-if /usr/sap/rfcsdk/bin/sapinfo $params | grep -i ERROR ; then
-exit 2
+output="$($sapinfocmd $params)"
+error="$(echo "$output" | $grepcmd ERROR | $wccmd -l)"
+if [ "$error" -gt "0" ]; then
+ output="$(echo "$output" | $grepcmd Key | $cutcmd -dy -f2)"
+ echo "CRITICAL - SAP server not ready: " $output.
+ exit 2
else
-exit 0
+ output="$(echo "$output" | $grepcmd Destination | $awkcmd '{ print $2 }')"
+ echo "OK - SAP server $output available."
+ exit 0
fi