getops first version
This commit is contained in:
parent
0dd36a05bd
commit
ac6ec92e03
@ -25,11 +25,21 @@ REVISION="6.6.6"
|
||||
|
||||
|
||||
# colors
|
||||
LIGHTGREEN="\033[1;32m"
|
||||
BOLD="\e[1m"
|
||||
GREEN="\e[32m"
|
||||
LIGHTGREEN="${BOLD}${GREEN}"
|
||||
RED="\033[1;31m"
|
||||
LIGHTRED="\033[1;31m"
|
||||
BLUE="\e[34m"
|
||||
LIGHTBLUE="${BOLD}${BLUE}"
|
||||
YELLOW="\e[33m"
|
||||
LIGHTYELLOW="${BOLD}${YELLOW}"
|
||||
WHITE="\033[0;37m"
|
||||
RESET="\033[0;00m"
|
||||
|
||||
|
||||
DEBUG=0
|
||||
|
||||
NOHEAD="SET HEAD OFF
|
||||
SET PAGES 0
|
||||
SET FEED OFF"
|
||||
@ -64,6 +74,50 @@ print_revision() {
|
||||
printf "%sThe nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n" | sed -e 's/\n/ /g'
|
||||
}
|
||||
|
||||
# H host
|
||||
# U oracle user
|
||||
# S sid
|
||||
# W warning
|
||||
# C critical
|
||||
# t tns
|
||||
# d db
|
||||
# l login
|
||||
# o ospassword
|
||||
# s sessions
|
||||
# c cache
|
||||
# p parsing
|
||||
# b tablespace
|
||||
# u undo
|
||||
# g diskgroup
|
||||
# f FRA
|
||||
# r redogen
|
||||
|
||||
usage()
|
||||
{
|
||||
echo -e "${LIGHTBLUE}USAGE${RESET}
|
||||
# H host
|
||||
# U oracle user
|
||||
# S sid
|
||||
# W warning
|
||||
# C critical
|
||||
# t tns
|
||||
# d db
|
||||
# l login
|
||||
# o ospassword
|
||||
# s sessions
|
||||
# c cache
|
||||
# p parsing
|
||||
# b tablespace
|
||||
# u undo
|
||||
# g diskgroup
|
||||
# f FRA
|
||||
# r redogen
|
||||
|
||||
|
||||
"
|
||||
exit 0
|
||||
}
|
||||
|
||||
print_usage()
|
||||
{
|
||||
echo "Usage:
|
||||
@ -152,24 +206,24 @@ print_help()
|
||||
"
|
||||
}
|
||||
|
||||
usage()
|
||||
{
|
||||
# Information options
|
||||
case "${1^^}" in
|
||||
"--HELP"|"-H")
|
||||
print_help
|
||||
exit $STATE_OK
|
||||
;;
|
||||
"--VERSION"|"-V")
|
||||
print_revision $PROGNAME $REVISION
|
||||
exit $STATE_OK
|
||||
;;
|
||||
*)
|
||||
print_usage
|
||||
exit $STATE_OK
|
||||
;;
|
||||
esac
|
||||
}
|
||||
## getops ### usage()
|
||||
## getops ### {
|
||||
## getops ### # Information options
|
||||
## getops ### case "${1^^}" in
|
||||
## getops ### "--HELP"|"-H")
|
||||
## getops ### print_help
|
||||
## getops ### exit $STATE_OK
|
||||
## getops ### ;;
|
||||
## getops ### "--VERSION"|"-V")
|
||||
## getops ### print_revision $PROGNAME $REVISION
|
||||
## getops ### exit $STATE_OK
|
||||
## getops ### ;;
|
||||
## getops ### *)
|
||||
## getops ### print_usage
|
||||
## getops ### exit $STATE_OK
|
||||
## getops ### ;;
|
||||
## getops ### esac
|
||||
## getops ### }
|
||||
|
||||
|
||||
oraerror_check()
|
||||
@ -1438,10 +1492,6 @@ check_userslocked()
|
||||
|
||||
check_seqapply()
|
||||
{
|
||||
# if [[ ! ${ORACLE_SID^^} = "BAVEL12SGDN" ]] ; then
|
||||
# echo "CRITICAL - ${ORACLE_SID} Not avalaible for sequece apply check"
|
||||
# return ${STATE_CRITICAL}
|
||||
# fi
|
||||
if [[ "${ORACLE_SID}" =~ (.*)GDN$ ]] ; then
|
||||
local AUXSID=${BASH_REMATCH[1]}
|
||||
#echo ${AUXSID}
|
||||
@ -1507,27 +1557,25 @@ ORDER BY 1;
|
||||
PROGNAME=$(basename $0)
|
||||
PROGPATH=$(dirname $0)
|
||||
|
||||
|
||||
[ $# -le 1 ] && usage $*
|
||||
|
||||
|
||||
REMOTE_SERVER=$2 && shift 2
|
||||
|
||||
if [[ ! ${REMOTE_SERVER} ]]
|
||||
then
|
||||
echo "No remote server specified!!!"
|
||||
exit ${STATE_UNKNOWN}
|
||||
fi
|
||||
|
||||
# Checking for non-standard user to connect
|
||||
if [[ "${1}" = "-U" ]]
|
||||
then
|
||||
ORACLE_OSUSER=$2 && shift 2
|
||||
else
|
||||
ORACLE_OSUSER="oracle"
|
||||
fi
|
||||
|
||||
SSH="ssh ${ORACLE_OSUSER}@${REMOTE_SERVER} -xq"
|
||||
## getops ###[ $# -le 1 ] && usage $*
|
||||
## getops ###
|
||||
## getops ###REMOTE_SERVER=$2 && shift 2
|
||||
## getops ###
|
||||
## getops ###if [[ ! ${REMOTE_SERVER} ]]
|
||||
## getops ###then
|
||||
## getops ### echo "No remote server specified!!!"
|
||||
## getops ### exit ${STATE_UNKNOWN}
|
||||
## getops ###fi
|
||||
## getops ###
|
||||
## getops #### Checking for non-standard user to connect
|
||||
## getops ###if [[ "${1}" = "-U" ]]
|
||||
## getops ###then
|
||||
## getops ### ORACLE_OSUSER=$2 && shift 2
|
||||
## getops ###else
|
||||
## getops ### ORACLE_OSUSER="oracle"
|
||||
## getops ###fi
|
||||
## getops ###
|
||||
## getops ###SSH="ssh ${ORACLE_OSUSER}@${REMOTE_SERVER} -xq"
|
||||
|
||||
ORACLEUSER="NAGIOS"
|
||||
ORACLEUSERPASSWORD="D2HSHBFMO5IINME9I9WT"
|
||||
@ -1544,52 +1592,131 @@ ORACLEUSERPASSWORD="D2HSHBFMO5IINME9I9WT"
|
||||
#
|
||||
########################################################################
|
||||
|
||||
# CLEANING THE COMMAND
|
||||
COMMAND="${1:2}"
|
||||
ORACLE_SID="$2"
|
||||
[[ ! "${COMMAND}" || ! "${ORACLE_SID}" ]] && print_usage && exit ${STATE_UNKNOWN}
|
||||
|
||||
|
||||
if [ $# -eq 3 ] ; then
|
||||
#ospassword check
|
||||
# the values are REVERSE as it use reverse_return_values
|
||||
CRITICAL=$2
|
||||
WARNING=$3
|
||||
# H host
|
||||
# U oracle user
|
||||
# S sid
|
||||
# W warning
|
||||
# C critical
|
||||
# t tns
|
||||
# d db
|
||||
# l login
|
||||
# o ospassword
|
||||
# s sessions
|
||||
# c cache
|
||||
# p parsing
|
||||
# b tablespace
|
||||
# u undo
|
||||
# g diskgroup
|
||||
# f FRA
|
||||
# r redogen
|
||||
|
||||
if [[ "${WARNING}" && ${CRITICAL} ]] ; then
|
||||
if [[ ${CRITICAL} -gt ${WARNING} ]] ; then
|
||||
echo "UNKNOWN - ${COMMAND} CRITICAL level is bigger than WARNING (reverse check)"
|
||||
exit $STATE_UNKNOWN
|
||||
while getopts "H:U:S:W:C:tdloscpbugfrhDF" arg; do
|
||||
case $arg in
|
||||
# H host
|
||||
H)
|
||||
REMOTE_SERVER=${OPTARG}
|
||||
;;
|
||||
# U oracle user
|
||||
U)
|
||||
ORACLE_OSUSER="${OPTARG}"
|
||||
;;
|
||||
# S sid
|
||||
S)
|
||||
ORACLE_SID="${OPTARG}"
|
||||
;;
|
||||
# W warning
|
||||
W)
|
||||
WARNING="${OPTARG}"
|
||||
;;
|
||||
# C critical
|
||||
C)
|
||||
CRITICAL="${OPTARG}"
|
||||
;;
|
||||
# t tns
|
||||
t)
|
||||
COMMAND="tns"
|
||||
;;
|
||||
# d db
|
||||
d)
|
||||
COMMAND="db"
|
||||
;;
|
||||
# l login
|
||||
l)
|
||||
COMMAND="login"
|
||||
;;
|
||||
# o ospassword
|
||||
o)
|
||||
COMMAND="ospassword"
|
||||
;;
|
||||
# s sessions
|
||||
s)
|
||||
COMMAND="sessions"
|
||||
;;
|
||||
# c cache
|
||||
c)
|
||||
COMMAND="cache"
|
||||
;;
|
||||
# p parsing
|
||||
p)
|
||||
COMMAND="parsing"
|
||||
;;
|
||||
# b tablespace
|
||||
b)
|
||||
COMMAND="tablespace"
|
||||
;;
|
||||
# u undo
|
||||
u)
|
||||
COMMAND="undo"
|
||||
;;
|
||||
# g diskgroup
|
||||
g)
|
||||
COMMAND="diskgroup"
|
||||
;;
|
||||
# f FRA
|
||||
f)
|
||||
COMMAND="fra"
|
||||
;;
|
||||
# r redogen
|
||||
r)
|
||||
COMMAND="redogen"
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
;;
|
||||
F)
|
||||
MAYTHEFORCEBEWITHYOU=true
|
||||
echo -e "${LIGHTBLUE}The force is strong in you?${RESET}"
|
||||
;;
|
||||
D)
|
||||
DEBUG=0
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# mandatory ops
|
||||
if [[ ! "${REMOTE_SERVER}" ]] ; then
|
||||
usage
|
||||
fi
|
||||
if [[ ! "${ORACLE_OSUSER}" ]] ; then
|
||||
usage
|
||||
fi
|
||||
else
|
||||
if [ $# -eq 4 ] ; then
|
||||
CRITICAL=$3
|
||||
WARNING=$4
|
||||
elif [ $# -eq 5 ] ; then
|
||||
TSDG=$3
|
||||
CRITICAL=$4
|
||||
WARNING=$5
|
||||
fi
|
||||
if [[ "${WARNING}" && ${CRITICAL} ]] ; then
|
||||
if [[ ${WARNING} -gt ${CRITICAL} ]] ; then
|
||||
echo "UNKNOWN - ${COMMAND} Warning level is less than Critical"
|
||||
exit $STATE_UNKNOWN
|
||||
if [[ ! "${ORACLE_SID}" ]] ; then
|
||||
usage
|
||||
fi
|
||||
if [[ ! "${WARNING}" || ! "${CRITICAL}" ]] ; then
|
||||
usage
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# if the check is not for asmfs, then a ORACLE_HOME is necessary
|
||||
if ! [[ "${COMMAND}" = "asmfs" || "${COMMAND}" = "ospassword" ]] ; then
|
||||
|
||||
SSH="ssh ${ORACLE_OSUSER}@${REMOTE_SERVER} -xq"
|
||||
|
||||
get_remote_oraclehome
|
||||
RES=$?
|
||||
if [ ${RES} -ne ${STATE_OK} ] ; then
|
||||
echo "CRITICAL - No ORACLE_HOME found"
|
||||
exit $STATE_UNKNOWN
|
||||
fi
|
||||
#
|
||||
fi
|
||||
|
||||
# SQLPLUS FOR CONNECTIONS
|
||||
SQLPLUS="sqlplus -s '${ORACLEUSER}/${ORACLEUSERPASSWORD}@${ORACLE_SID}'"
|
||||
@ -1597,6 +1724,65 @@ ORAENV="ORACLE_HOME=${ORACLE_HOME};PATH=$PATH:$ORACLE_HOME/bin;LD_LIBRARY_PATH=$
|
||||
|
||||
|
||||
|
||||
echo -e "${SSH}"
|
||||
echo -e "${SQLPLUS}"
|
||||
echo -e "${ORAENV}"
|
||||
echo -e "${COMMAND}"
|
||||
exit 0
|
||||
|
||||
|
||||
## getops ### # CLEANING THE COMMAND
|
||||
## getops ### COMMAND="${1:2}"
|
||||
## getops ### ORACLE_SID="$2"
|
||||
## getops ### [[ ! "${COMMAND}" || ! "${ORACLE_SID}" ]] && print_usage && exit ${STATE_UNKNOWN}
|
||||
|
||||
|
||||
## getops ### if [ $# -eq 3 ] ; then
|
||||
## getops ### #ospassword check
|
||||
## getops ### # the values are REVERSE as it use reverse_return_values
|
||||
## getops ### CRITICAL=$2
|
||||
## getops ### WARNING=$3
|
||||
## getops ###
|
||||
## getops ### if [[ "${WARNING}" && ${CRITICAL} ]] ; then
|
||||
## getops ### if [[ ${CRITICAL} -gt ${WARNING} ]] ; then
|
||||
## getops ### echo "UNKNOWN - ${COMMAND} CRITICAL level is bigger than WARNING (reverse check)"
|
||||
## getops ### exit $STATE_UNKNOWN
|
||||
## getops ### fi
|
||||
## getops ### fi
|
||||
## getops ### else
|
||||
## getops ### if [ $# -eq 4 ] ; then
|
||||
## getops ### CRITICAL=$3
|
||||
## getops ### WARNING=$4
|
||||
## getops ### elif [ $# -eq 5 ] ; then
|
||||
## getops ### TSDG=$3
|
||||
## getops ### CRITICAL=$4
|
||||
## getops ### WARNING=$5
|
||||
## getops ### fi
|
||||
## getops ### if [[ "${WARNING}" && ${CRITICAL} ]] ; then
|
||||
## getops ### if [[ ${WARNING} -gt ${CRITICAL} ]] ; then
|
||||
## getops ### echo "UNKNOWN - ${COMMAND} Warning level is less than Critical"
|
||||
## getops ### exit $STATE_UNKNOWN
|
||||
## getops ### fi
|
||||
## getops ### fi
|
||||
## getops ###
|
||||
## getops ### fi
|
||||
|
||||
## getops ### # if the check is not for asmfs, then a ORACLE_HOME is necessary
|
||||
## getops ### if ! [[ "${COMMAND}" = "asmfs" || "${COMMAND}" = "ospassword" ]] ; then
|
||||
## getops ### get_remote_oraclehome
|
||||
## getops ### RES=$?
|
||||
## getops ### if [ ${RES} -ne ${STATE_OK} ] ; then
|
||||
## getops ### echo "CRITICAL - No ORACLE_HOME found"
|
||||
## getops ### exit $STATE_UNKNOWN
|
||||
## getops ### fi
|
||||
## getops ### #
|
||||
## getops ### fi
|
||||
|
||||
## getops ### # SQLPLUS FOR CONNECTIONS
|
||||
## getops ### SQLPLUS="sqlplus -s '${ORACLEUSER}/${ORACLEUSERPASSWORD}@${ORACLE_SID}'"
|
||||
## getops ### ORAENV="ORACLE_HOME=${ORACLE_HOME};PATH=$PATH:$ORACLE_HOME/bin;LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib;export ORACLE_HOME PATH LD_LIBRARY_PATH;"
|
||||
|
||||
|
||||
case "${COMMAND}" in
|
||||
"tns")
|
||||
check_tns
|
||||
|
Loading…
Reference in New Issue
Block a user