[Nagiosplug-checkins] CVS: nagiosplug/plugins-scripts check_oracle.sh,1.1.1.1,1.2

Subhendu Ghosh sghosh at users.sourceforge.net
Wed Jun 5 21:16:02 CEST 2002


Update of /cvsroot/nagiosplug/nagiosplug/plugins-scripts
In directory usw-pr-cvs1:/tmp/cvs-serv30299

Modified Files:
	check_oracle.sh 
Log Message:
Add test for Oracle name server, can dynamicall determine ORACLE_HOME - tom Bertelson

Index: check_oracle.sh
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins-scripts/check_oracle.sh,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** check_oracle.sh	28 Feb 2002 06:43:00 -0000	1.1.1.1
--- check_oracle.sh	6 Jun 2002 04:15:06 -0000	1.2
***************
*** 37,40 ****
--- 37,41 ----
    echo "  $PROGNAME --tns <Oracle Sid or Hostname/IP address>"
    echo "  $PROGNAME --db <ORACLE_SID>"
+   echo "  $PROGNAME --oranames <Hostname>"
    echo "  $PROGNAME --help"
    echo "  $PROGNAME --version"
***************
*** 53,56 ****
--- 54,59 ----
    echo "   Check local database (search /bin/ps for PMON process and check"
  	echo "   filesystem for sgadefORACLE_SID.dbf"
+   echo "--oranames=Hostname"
+   echo "   Check remote Oracle Names server"
    echo "--help"
  	echo "   Print this help screen"
***************
*** 58,63 ****
  	echo "   Print version and license information"
  	echo ""
!   echo "If the plugin doesn't work, check that the $ORACLE_HOME environment"
! 	echo "variable is set, that $ORACLE_HOME/bin is in your PATH, and the"
    echo "tnsnames.ora file is locatable and is properly configured."
    echo ""
--- 61,66 ----
  	echo "   Print version and license information"
  	echo ""
!   echo "If the plugin doesn't work, check that the ORACLE_HOME environment"
! 	echo "variable is set, that ORACLE_HOME/bin is in your PATH, and the"
    echo "tnsnames.ora file is locatable and is properly configured."
    echo ""
***************
*** 79,90 ****
  esac
  
  case "$cmd" in
  --tns)
!     export tnschk=` tnsping $2`
!     export tnschk2=` echo  $tnschk | grep -c OK`
!     export tnschk3=` echo $tnschk | cut -d\( -f7 | sed y/\)/" "/`
      if [ ${tnschk2} -eq 1 ] ; then 
  	echo "OK - reply time ${tnschk3} from $2"
! 	exit 0
      else
  	echo "No TNS Listener on $2"
--- 82,121 ----
  esac
  
+ # Hunt down a reasonable ORACLE_HOME
+ if [ -z "$ORACLE_HOME" ] ; then
+ 	# Adjust to taste
+ 	for oratab in /var/opt/oracle/oratab /etc/oratab
+ 	do
+ 	[ ! -f $oratab ] && continue
+ 	ORACLE_HOME=`IFS=:
+ 		while read SID ORACLE_HOME junk;
+ 		do
+ 			if [ "$SID" = "$2" ] ; then
+ 				echo $ORACLE_HOME;
+ 				exit;
+ 			fi;
+ 		done < $oratab`
+ 	[ -n "$ORACLE_HOME" ] && break
+ 	done
+ fi
+ # Last resort
+ [ -z "$ORACLE_HOME" -a -d $PROGPATH/oracle ] && ORACLE_HOME=$PROGPATH/oracle
+ 
+ if [ -z "$ORACLE_HOME" -o ! -d "$ORACLE_HOME" ] ; then
+ 	echo "Cannot determine ORACLE_HOME for sid $2"
+ 	exit $STATE_UNKNOWN
+ fi
+ PATH=$PATH:$ORACLE_HOME/bin
+ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
+ export ORACLE_HOME PATH LD_LIBRARY_PATH
+ 
  case "$cmd" in
  --tns)
!     tnschk=` tnsping $2`
!     tnschk2=` echo  $tnschk | grep -c OK`
      if [ ${tnschk2} -eq 1 ] ; then 
+ 	tnschk3=` echo $tnschk | sed -e 's/.*(//' -e 's/).*//'`
  	echo "OK - reply time ${tnschk3} from $2"
! 	exit $STATE_OK
      else
  	echo "No TNS Listener on $2"
***************
*** 92,103 ****
      fi
      ;;
  --db)
!     export pmonchk=`ps -ef | grep -v grep | grep ${2} | grep -c pmon`
!     if [ -e $ORACLE_HOME/dbs/sga*${2}* ] ; then
! 	if [ ${pmonchk} -eq 1 ] ; then
!     export utime=`ls -la $ORACLE_HOME/dbs/sga*$2* | cut -c 43-55`
! 	    echo "${2} OK - running since ${utime}"
! 	    exit $STATE_OK
! 	fi
      else
  	echo "${2} Database is DOWN"
--- 123,155 ----
      fi
      ;;
+ --oranames)
+     namesctl status $2 | awk '
+     /Server has been running for:/ {
+ 	msg = "OK: Up"
+ 	for (i = 6; i <= NF; i++) {
+ 	    msg = msg " " $i
+ 	}
+ 	status = '$STATE_OK'
+     }
+     /error/ {
+ 	msg = "CRITICAL: " $0
+ 	status = '$STATE_CRITICAL'
+     }
+     END {
+ 	print msg
+ 	exit status
+     }'
+     ;;
  --db)
!     pmonchk=`ps -ef | grep -v grep | grep ${2} | grep -c pmon`
!     if [ ${pmonchk} -ge 1 ] ; then
! 	echo "${2} OK - ${pmonchk} PMON process(es) running"
! 	exit $STATE_OK
!     #if [ -f $ORACLE_HOME/dbs/sga*${2}* ] ; then
! 	#if [ ${pmonchk} -eq 1 ] ; then
!     #utime=`ls -la $ORACLE_HOME/dbs/sga*$2* | cut -c 43-55`
! 	    #echo "${2} OK - running since ${utime}"
! 	    #exit $STATE_OK
! 	#fi
      else
  	echo "${2} Database is DOWN"





More information about the Commits mailing list