[아바마] 오라클 아카이브 50% 이상 찼을때 백업후 삭제 ksh 스크립트
2012.01.16 23:58
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
스크립트 : chk_arc.sh
목적 : 오라클 아카이브 로그가 빈번하게 쌓이고 파일시스템 여분이 충분치 않은 시스템에서
파일시스템이 50% 이상 넘어갔을시에 아카이브로그를 아바마로 백업후 백업한 로그파일만 삭제
작업이 완료된 후 해당 내용을 SMS DB로 넣어서 문자메시지로 관리자가 받을수 있도록 한다.
#!/usr/bin/ksh
# script by ischo
# http://www.ischo.net
# chosim1@naver.com
# Shell script : Check Archived-log filesystem and backup
#############################################################################
# ENVIRONMENT SETTING
#############################################################################
# For Shell
export LANG=C
SH_HOME=/home/admin/chk_arc
ARC_DIR="/oracle/arc"
LOG=${SH_HOME}/chkarc_`date +%Y%m%d`.log
AVR_LOG=${SH_HOME}/avr.log
# For Avamar
BIN_DIR=/opt/AVMRclnt/bin
ACCOUNT=/domain_name/host_name /* 아바마 형식에 맞춰 /도메인명/호스트명 형식으로 기입 */
ID=Avamar_ID /* 아바마 ID */
AP=Avamar_Password /* 아바마 패스워드 */
# TIME mark VARS
STIME=`date +%Y%m%d%H%M%S`
TTIME=`date +%H:%M`
DDATE=`date +%Y%m%d`
# For SMS shoot #########################################
# SQL file for insert into DB
SQLFILE=${SH_HOME}/send_sms.sql
# Phone Number to Send
# PHN1 - Cho In Sang
PHN1=01012341234
# Phone Number for Sender
SEND_PHN=0421231234
# ServerName : This setting will be included in SMS
SERVERNAME=`hostname`
# DB user/group : OS user/group for ORACLE
DBUSER=oracle
DBGRP=dba
#########################################################
#############################################################################
#############################################################################
#############################################################################
# Function
#############################################################################
# Excuting SQL into EMS DB
function Func_InsertDB
{
su - $DBUSER -c "sqlplus dbuser/dbpassword@SMSDB << !
start $SQLFILE
exit
!"
}
function Func_MakeSQL
{
#echo "$SQLFILE inserted!"
cat /dev/null > $SQLFILE
for TARGET_SEND in `echo $PHN1;`
do
echo "Insert into sms.sms_sktelink (CMP_MSG_ID, CMP_USR_ID, ODR_FG, SMS_GB, USED_CD, MSG_GB, WRT_DTTM, SND_DTTM, SND_PHN_ID, RCV_PHN_ID, CALLBACK, SND_MSG, CMP_SND_DTTM, EXPIRE_VAL, SMS_ST, RSLT_VAL, RSRVD_ID, RSRVD_WD) Values (sms.SKTELINK_SEQ.nextval, '00000', '2', '1', '00 ', 'A','"$STIME"','"$STIME"','"$SEND_PHN"','"$TARGET_SEND"','"$SEND_PHN"','"$SEND_MSG"','"$STIME"', 0, '0', 99, '', '');" >> $SQLFILE
echo "commit;" >> $SQLFILE
done
chown $DBUSER:$DBGRP $SQLFILE
}
function Func_Backup
{
PRO_CHK=`ps -ef | grep avtar.bin | grep -v grep |wc -l`
if [ ${PRO_CHK} -eq 0 ];
then
cat /dev/null > ${AVR_LOG}
ls -l ${ARC_DIR} | grep .arc | awk '{print $9}' > ${SH_HOME}/list.txt
echo "${DDATE} ${TTIME} Archived log Backup Start" >> ${LOG}
## Backup Archived-log files ##########################################################
${BIN_DIR}/avtar -c --expires=14D --label=hostname_arch_50pct --id=${ID} --ap=${AP} --account=${ACCOUNT} --logfile=${AVR_LOG} ${ARC_DIR}
sleep 3
########################################################################################
TTIME=`date +%H:%M`
DDATE=`date +%Y%m%d`
echo "${DDATE} ${TTIME} Archived log Backup Finished." >> ${LOG}
## Delete Archived-log files ##########################################################
CHK_SUCCESS=`cat ${AVR_LOG} | grep "Command completed (exit code 0: Success)" | wc -l`
if [ ${CHK_SUCCESS} -ge 1 ];
then
echo "${DDATE} ${TTIME} Delete Archive log file" >> ${LOG}
for i in `cat ${SH_HOME}/list.txt`
do
echo "-- Delete Arc Log file name : ${i}" >> $LOG
rm -f ${ARC_DIR}/${i}
done
echo "${DDATE} ${TTIME} Delete Archived log Complete!" >> ${LOG}
echo "--------------------------------------------------------------" >> ${LOG}
ARC_PCT=`bdf | grep ${ARC_DIR} | grep -v grep | awk '{print $5}'`
ARC_PCT=`echo ${ARC_PCT%'%'}`
SEND_MSG=`echo "${SERVERNAME}:Arclog Backup success(${ARC_PCT}%),delete arc-logs. ${TTIME}"`
Func_MakeSQL
Func_InsertDB
else
echo "${DDATE} ${TTIME} Backup ended, but can't delete Archived log" >> ${LOG}
ARC_PCT=`bdf | grep ${ARC_DIR} | grep -v grep | awk '{print $5}'`
ARC_PCT=`echo ${ARC_PCT%'%'}`
SEND_MSG=`echo "${SERVERNAME}:Arclog Backup Fail(${ARC_PCT}%),not delete arc-logs. ${TTIME}"`
Func_MakeSQL
Func_InsertDB
exit 0
fi
########################################################################################
else
echo "${DDATE} ${TTIME} Backup is canceled cause already Started!" >> ${LOG}
fi
}
#############################################################################
#############################################################################
#############################################################################
# Main Procedure
#############################################################################
ARC_PCT=`bdf | grep ${ARC_DIR} | grep -v grep | awk '{print $5}'`
ARC_PCT=`echo ${ARC_PCT%'%'}`
#--- Check File System. If Free_Space is small, Execute Backup.
if [ ${ARC_PCT} -ge 50 ];
then
Func_Backup
if [ $? -ne 0 ];
then
exit 0
fi
else
echo "${DDATE} ${TTIME} ${ARC_DIR} < 50% : ${ARC_PCT}%" >> ${LOG}
fi
find ${SH_HOME} -name "chkarc*.log" -type f -mtime +5 -exec rm {} \;
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
26 | netbackup 7.5 버전 : 오라클 script 처리 방법 | 조인상 | 2013.04.12 | 43660 |
25 | 백업 테이프와 드라이브 종류 | 조인상 | 2010.05.09 | 31802 |
24 | 아바마 - 클라이언트 설치부터 그룹설정까지 | 조인상 | 2011.03.29 | 24028 |
23 | 아바마 관리 매뉴얼 | 조인상 | 2011.03.29 | 18131 |
» | [아바마] 오라클 아카이브 50% 이상 찼을때 백업후 삭제 ksh 스크립트 | 조인상 | 2012.01.16 | 16648 |
21 | atempo tina 소개 | 조인상 | 2010.11.17 | 16291 |
20 | LTO ( Linear Tape Open ) Ultrium 란? | 조인상 | 2010.05.12 | 14904 |
19 | Veritas Netbackup 4.5 설치 및 설정 for Solaris [1] | 조인상 | 2010.05.11 | 13685 |
18 | [Netbackup] Drive 상태 | 조인상 | 2010.11.10 | 13357 |
17 | Netwalker 사용자 매뉴얼 [1] | 조인상 | 2010.11.17 | 12534 |
16 | Overland REO9000 Manual | 조인상 | 2010.12.14 | 11855 |
15 | [넷백업] Media의 VolmePool 이동방법 | 조인상 | 2010.05.11 | 11723 |
14 | Networker v7.6 Installation Guide | 조인상 | 2012.02.23 | 11569 |
13 | [아바마] 멀티 에이전트 등록방법 | 조인상 | 2012.03.03 | 11115 |
12 | [넷워커] 스크립트 처리 방법 | 조인상 | 2012.01.30 | 11081 |
11 | 베리타스 넷백업 84번 에러 | 조인상 | 2010.05.11 | 10509 |
10 | Qualstar 백업장비 모델명 규칙 | 조인상 | 2010.05.11 | 9988 |
9 | 베리타스 넷백업 196번 에러 | 조인상 | 2010.05.11 | 9845 |
8 | [일반쉘] FTP를 이용한 백업파일 넘기기 | 조인상 | 2010.05.11 | 7903 |
7 | DP에서 NFS 인식시키기 | 조인상 | 2015.10.08 | 6387 |