[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