![[script] oracleの接続確認を実施する](https://memo.wakaue.info/wp-content/uploads/2015/07/l_012.png)
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}
								 
                     
                        