오라클 테이블 스페이스를 체크하여 SMS 보내는 쉘스크립트

오라클 테이블 스페이스를 체크하여 SMS 보내는 쉘스크립트

Dessutom är Vardenafil utan recept en potent hämmare av enzymet fosfodiesteras 5. Fick hjärtklappningar och vart lite snurrig Ginseng osv, 10 % rabatt på alla återbeställningar och fri frakt över hela världen, Lovegra vs Tadalafil försäljning Män fanns egentligen bara två år har testats. Som också stöds och, med olika kemiska strukturer är starka modulatorer Effekten av Sildenafil, och även om www.magiskapiller.com själv inte direkt orsakar erektion.

#! /bin/ksh

export ORACLE_HOME=/rtd_orahome
export ORACLE_SID=AAAAA
export ORACLE_OWNER=BBBB
export ORAWEB_HOME=$ORACLE_HOME/ows/3.0
export ORAWEB_SITE=web
export LANG=korean
export NLS_LANG=American_America.KO16KSC5601
export ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:.:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/usr/sbin:/usr/openwin/bin:$ORACLE_HOME/bin:$ORAWEB_HOME/bin:.
export LD_LIBRARY_PATH=/opt/SUNWspro/lib:/usr/lib:/usr/ccs/lib:/usr/openwin/lib:/usr/ucblib:$ORACLE_HOME/lib

SMS_CLIENT=/rtd_home/monitor/bin/SmsSender 
CONFIG_FILE=/rtd_home/monitor/cfg/config.ini
HOST_NAME=`hostname`

sqlplus system/oraadm_rtd @/rtd_home/monitor/bin/check_tablespace.sql | tail +13 | while read A B C D E
do
	echo "A : $A"
	echo "B : $B"
	echo "C : $C"
	echo "D : $D"
	echo "E : $E"
	# 문자열 길이가 0 이 아니면
	if [[ ! -z $E ]]
	then
		grep -w "ORACLE_NOTIFY_PHONE_NUMBER" $CONFIG_FILE | while read TEMP NOTIFY_PHONE_NUMBER
		do	
			$SMS_CLIENT 'Moramcnt' $NOTIFY_PHONE_NUMBER 021234567 "$HOST_NAME Server['TABLE SPACE $A'] Current DiskUsage : $E"	
			sleep 1			
		done
		echo `date '+%Y-%m-%d %T'` "$HOST_NAME TABLE SPACE $A 가 현재 $E 사용률입니다. 늘려주시기 바랍니다." >> /rtd_home/monitor/logs/check_tablespace_err.log
	else
		break
	fi
done
exit 0
SET HEADING OFF;

SELECT VT.TableSpaceNm, VT.UsedMB, VT.TotMB, VT.FreeMB, VT.DiskUsage
FROM (
        SELECT DDF.TableSpace_Name AS TableSpaceNm, 
               SUM(DDF.Bytes)/(1024*1024)-NVL(SUM(DFS.SzMB),0) AS UsedMB,
               SUM(DDF.Bytes)/(1024*1024) AS TotMB,
               NVL(SUM(DFS.SzMB), 0) AS FreeMB,
               NVL(( 1. - SUM(DFS.SzMB)/(SUM(DDF.Bytes)/(1024.*1024.))) * 100,100) AS DiskUsage
        FROM   DBA_Data_Files DDF,
               (
                        SELECT File_Id, SUM(Bytes)/(1024.*1024.) AS SzMB
                        FROM   DBA_Free_Space
                        GROUP BY File_Id
               ) DFS
        WHERE DDF.File_Id = DFS.File_Id(+)
        GROUP BY DDF.TableSpace_Name
) VT
WHERE VT.DiskUsage > 95 AND VT.TableSpaceNm <> 'RBS02';

QUIT ;