--OraCheck.sh
#!/bin/bash
#Usage: sh OraCheck.sh alertlogfile days
#Example: sh OraCheck.sh $ORACLE_BASE/admin/SID/bdump/alert_sid.log 30
ERRORLOGFILE=$1
GAPDAYS=$2
ORAFILE=/tmp/oraerror.log
OSDAY=`date -d "-$GAPDAYS days"|awk '{print $3}'`
if [ $OSDAY -lt 10 ]; then
GAPDAYS=$2
ORAFILE=/tmp/oraerror.log
OSDAY=`date -d "-$GAPDAYS days"|awk '{print $3}'`
if [ $OSDAY -lt 10 ]; then
#For 10.2.0.4
DAY_B4_30D=`date -d "-$GAPDAYS days"|awk '{print $1,$2," "$3}'`
DAY_B4_30D=`date -d "-$GAPDAYS days"|awk '{print $1,$2," "$3}'`
#For 10.2.0.5 or above
#DAY_B4_30D=`date -d "-$GAPDAYS days"|awk '{print $1,$2,"0"$3}'`
else
DAY_B4_30D=`date -d "-$GAPDAYS days"|awk '{print $1,$2,$3}'`
fi
TODAY=`date |awk '{print $3}'`
if [ $TODAY -lt 10 ]; then
if [ $TODAY -lt 10 ]; then
#For 10.2.0.4
TODAYDATE=`date |awk '{print $1,$2," "$3}'`
TODAYDATE=`date |awk '{print $1,$2," "$3}'`
#For 10.2.0.5 or above
#TODAYDATE=`date |awk '{print $1,$2,"0"$3}'`
else
TODAYDATE=`date |awk '{print $1,$2,$3}'`
fi
else
TODAYDATE=`date |awk '{print $1,$2,$3}'`
fi
YEAR=`date |awk '{print $6}'`
FIRSTDAYLINENUM=`grep -nE ^"$DAY_B4_30D".*"$YEAR"$ $ERRORLOGFILE|head -1|cut -d: -f1`
TODAYLINENUM=`grep -nE ^"$TODAYDATE".*"$YEAR"$ $ERRORLOGFILE|tail -1|cut -d: -f1`
sed -n "$FIRSTDAYLINENUM","$TODAYLINENUM"p $ERRORLOGFILE|grep -E "abort|ORA-|Errors|WARNING:" >$ORAFILE
TODAYLINENUM=`grep -nE ^"$TODAYDATE".*"$YEAR"$ $ERRORLOGFILE|tail -1|cut -d: -f1`
sed -n "$FIRSTDAYLINENUM","$TODAYLINENUM"p $ERRORLOGFILE|grep -E "abort|ORA-|Errors|WARNING:" >$ORAFILE
cat $ORAFILE
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27064837/viewspace-755351/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27064837/viewspace-755351/