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}