Search

[script] oracleの接続確認を実施する

nagios用にbashでoracle接続確認を行うスクリプトを作成してみた。
ヒアドキュメント内で「$」を使うときにはまったが、hnakamurさんのおかげで解決できた。

<< EOF

<< 'EOF'

に変えることで問題なく使用できた。

#!/bin/bash
##################################################
# oracleの接続確認を実施する。
#  パラメータ  1:ユーザ名、2:password、3: NET_SERVICE_NAME
#
##################################################

# 終了コード
OK=0
WARNING=1
CRITICAL=2
UNKNOWN=3
STATUS=${CRITICAL}

if [ $# -ne 3 ]; then
  echo "指定された引数は$#個です。" 1>&2
  echo "実行するには3個の引数が必要です。" 1>&2
  exit ${UNKNOWN}
fi

RESULT=

# end process
trap '/bin/echo "RESULT : "${RESULT}; exit ${CRITICAL}' 1 2 3 15

# 環境変数セット
export ORACLE_HOME=*****
export LD_LIBRARY_PATH=*********
export TNS_ADMIN=**********
export PATH=$ORACLE_HOME/bin

USER=$1
PASS=$2
NET_SERVICE_NAME=$3

# execute
RESULT=`sqlplus -s ${USER}/${PASS}@${NET_SERVICE_NAME} << 'EOF'
set feedback off;
set echo off;
set flush off;
set head off;
SELECT COUNT(1) FROM v$session WHERE type = 'USER';
quit
EOF`

if [ $? -eq 0 ]; then
    STATUS=${OK}
fi

/bin/echo "RESULT : "${RESULT}
exit ${STATUS}