<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Update version of check_sap.sh</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>

<BR><FONT SIZE=2 FACE="Arial">I updated the check_sap.sh skript.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Changes/Bugfix:</FONT>

<BR><FONT SIZE=2 FACE="Arial">When sapinfo is missing or doesn't give any output the script gives an error back instead of ok.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Please check in into current svn.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Thank you!</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Greetings,<BR>
Benjamin</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Arial"># Code:</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">#!/bin/sh </FONT>

<BR><FONT SIZE=2 FACE="Courier New">################################################################################ </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># CHECK_SAP plugin for Nagios </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Originally Written by Karel Salavec (karel.salavec@ct.cz) </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Last Modified: 11 Oct 2007 by Benjamin Zoeller (benjamin.zoeller@salt-solutions.de)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Version 1.2 (Benjamin Zoeller)</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># - Added output check, to check if the required programs are installed</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Version 1.1 (Tom De Blende)</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># - Added output to feed to Nagios instead of just an exit code.</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># - Changed info on where to get the SAP client tools for Linux.</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Version 1.0 (Karel Salavec)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Command line: check_sap.sh <typ_of_check> <param1> <param2> [<param3>] </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># Description: </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># This plugin will attempt to open an SAP connection with the message </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># server or application server. </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  It need the sapinfo program installed on your server (see Notes). </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  Notes: </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#   - This plugin requires that the sapinfo program is installed. </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#   - Sapinfo is part of a client package that can be found </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#     at </FONT><A HREF="ftp://ftp.sap.com/pub/linuxlab/contrib/"><U><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">ftp://ftp.sap.com/pub/linuxlab/contrib/</FONT></U></A><FONT SIZE=2 FACE="Courier New">. </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  Parameters: </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  $1 - type of checking - valid values: "ms" = message server </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#                                        "as" = application server </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  $2 - SAP server identification - can be IP address, DNS name or SAP </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#       connect string (for example: /H/saprouter/S/sapdp01/H/sapserv3) </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  $3 - for $1="ms" - SAP system name (for example: DEV, TST, ... ) </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#       for $1="as" - SAP system number - note: central instance have sysnr=00 </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  $4 - valid only for $1="ms" - logon group name - default: PUBLIC </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  Example of command definitions for nagios: </FONT>

<BR><FONT SIZE=2 FACE="Courier New"># </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  command[check_sap_ms]=/usr/local/nagios/libexec/check_sap ms $HOSTADDRESS$ $ARG1$ $ARG2$ </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  command[check_sap_as]=/usr/local/nagios/libexec/check_sap as $HOSTADDRESS$ $ARG1$ </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#  command[check_sap_ex]=/usr/local/nagios/libexec/check_sap as $ARG1$ $ARG2$ </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#                        (for ARG1 see SAP OOS1 transaction) </FONT>

<BR><FONT SIZE=2 FACE="Courier New">#</FONT>

<BR><FONT SIZE=2 FACE="Courier New">##############################################################################</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">sapinfocmd='/usr/sap/rfcsdk/bin/sapinfo'</FONT>

<BR><FONT SIZE=2 FACE="Courier New">grepcmd=`which grep`</FONT>

<BR><FONT SIZE=2 FACE="Courier New">wccmd=`which wc`</FONT>

<BR><FONT SIZE=2 FACE="Courier New">cutcmd=`which cut`</FONT>

<BR><FONT SIZE=2 FACE="Courier New">awkcmd=`which awk`</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">##############################################################################</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">if [ $# -lt 3 ]; then</FONT>

<BR><FONT SIZE=2 FACE="Courier New">echo "Usage: $0 <typ_of_check> <param1> <param2> [<param3>]"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">exit 2</FONT>

<BR><FONT SIZE=2 FACE="Courier New">fi</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">case "$1"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">  in</FONT>

<BR><FONT SIZE=2 FACE="Courier New">    ms)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        if [ $4 ]</FONT>

<BR><FONT SIZE=2 FACE="Courier New">          then</FONT>

<BR><FONT SIZE=2 FACE="Courier New">            params="r3name=$3 mshost=$2 group=$4"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        else</FONT>

<BR><FONT SIZE=2 FACE="Courier New">          params="r3name=$3 mshost=$2"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        fi</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        ;;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">    as)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        params="ashost=$2 sysnr=$3"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        ;;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">    *)</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        echo "The first parameter must be ms (message server) or as (application server)!"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        exit 2</FONT>

<BR><FONT SIZE=2 FACE="Courier New">        ;;</FONT>

<BR><FONT SIZE=2 FACE="Courier New">esac</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">output="$($sapinfocmd $params)"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">error="$(echo "$output" | $grepcmd ERROR | $wccmd -l)"</FONT>

<BR><FONT SIZE=2 FACE="Courier New">if [ "$output" == "" ]; then</FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">echo "ERROR - No Output! Please check if the required programs are available and the nagios user has execution rights."</FONT></P>

<P>        <FONT SIZE=2 FACE="Courier New">exit 2 </FONT>

<BR><FONT SIZE=2 FACE="Courier New">else</FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">if [ "$error" -gt "0" ]; then</FONT>

<BR><FONT SIZE=2 FACE="Courier New">                output="$(echo "$output" | $grepcmd Key | $cutcmd -dy -f2)"</FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">        echo "CRITICAL - SAP server not ready: " $output.</FONT>

<BR><FONT SIZE=2 FACE="Courier New">                exit 2</FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">else</FONT>

<BR>                <FONT SIZE=2 FACE="Courier New">output="$(echo "$output" | $grepcmd Destination | $awkcmd '{ print $2 }')"</FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">        echo "OK - SAP server $output available."</FONT>

<BR><FONT SIZE=2 FACE="Courier New">                exit 0  </FONT>

<BR>        <FONT SIZE=2 FACE="Courier New">fi</FONT>

<BR><FONT SIZE=2 FACE="Courier New">fi</FONT>
</P>

<P><FONT SIZE=2 FACE="Courier New">#END OF CODE</FONT>
</P>

</BODY>
</HTML>