`
wsql
  • 浏览: 11754185 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

每天定时检查Oracle alert日志并发送mail

 
阅读更多

每天定时检查Oracle alert日志并发送mail的shell脚本

每天早上8点检查从昨天16点到现在的alert日志信息并发送mail,每天16点检查从早上8点到现在的alert日志信息并发送mail。这样就持续起来就可以保持每天都可见检查alert日志信息。虽然不能实时监测到错误并发mail但是对日常点检来说足够了。相当于每天查看两次alert日志信息。

每天上午8点的shell脚本如下:
同样每天16点的shell脚本将相应的datet进行注释替换就好了。

#!/bin/bash
# Every day at 16:00 check today fom 8.00 to now alert log info dbabc.net
# by dbabc.net 2011/1/14 dbabc.net
# User specific environment and startup programs dbabc.net
datet=`date -d yesterday “+%a %b %d”`” 16″ ### yesterday 00:00
#datet=`date “+%a %b %d”`” 08″ ####today 8:00
#switch log file for alter timestamp dbabc.net
sqlplus /nolog <<EOF
conn / as sysdba
alter system switch logfile;
exit
EOF
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
alterdir=/home/dbabc.net/dbabc.net_check
#check dir & file dbabc.net
if ! test -d ${alterdir}
then
mkdir -p ${alterdir}
fi
if ! test -f ${alterdir}/ok.log
then
echo ‘There is no rror & ORA- error_INFO in alter log 1 day before’ >${alterdir}/ok.log
fi
DBAEMAIL=dbabc.net_check@dbabc.net;export DBAEMAIL
alterlog=$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log
errct=`sed -n “/${datet}/,/—-end-df/p” $alterlog |grep ‘ORA-|rror’ | wc -l`
alerlog=`sed -n “/${datet}/,/—-end-df/p” $alterlog >${alterdir}/alert.log`
errlog=`sed -n “/${datet}/,/—-end-df/p” $alterlog | grep ‘ORA-|rror’ >${alterdir}/err.log`
#send mail dbabc.net
if [ $errct -ne "0" ];then
ssh catalog mailx -s “‘There are error since ${datet} :00_on_${ORACLE_SID}_alter_log’” $DBAEMAIL <
${alterdir}/err.log
else
ssh catalog mailx -s “‘It is OK! Since ${datet}:00 on ${ORACLE_SID} alter log’” $DBAEMAIL < ${alterdir}/ok.log
fi
exit

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics