#!/bin/ksh #***********************************************# # # # Name : alertswitch.ksh # # Created : 2000/03/20 # # Purpose : Program runs at 23:57 every day to # # rename day's alert log to file # # alert_$db.log$DAY. # # Program will check for alert.logs # # in $ORACLE_HOME/rdbms/log and the # # background_dump_dest directories. # # All sqlnet logs are also renamed. # # All corefiles are cleaned up and # # DBA notified of new corefiles. # # # #***********************************************# FILENAME=`date '+%a'` WORKDIR=/usr1/app/oracle/product/8.0.5/home GENSQL=genswitch.sql SYSTEM_001PR=`cat /var/opt/oracle/SYSTEM_001P` ERRFILE=err.out SIDFILE=sidfile # ps -ef | grep pmon | grep -v grep | awk '{print $9}' | cut -c10-17 > $WORKDIR/$SIDFILE #-----------------------------------------------# # Logs in RDBMS/LOG : # #-----------------------------------------------# echo "Rename Alertlogs in RDBMS/LOG" echo "-----------------------------" HOMEDIR=$ORACLE_HOME/rdbms/log cd $HOMEDIR for i in `ls alert*.log` do echo ......Rename $i to $i$FILENAME cp $i $i$FILENAME > $i done # #-----------------------------------------------# # Logs in BDUMP : # #-----------------------------------------------# # echo "Rename Alertlogs in BDUMP" echo "-------------------------" cat $WORKDIR/$SIDFILE | while read siddie do export ORACLE_SID=$siddie echo " Renaming alertlogs for SID : $ORACLE_SID" echo " ---------------------------------" echo "set heading off" > $WORKDIR/$GENSQL echo "set pages 0" >> $WORKDIR/$GENSQL echo "set feed off " >> $WORKDIR/$GENSQL echo "set echo off" >> $WORKDIR/$GENSQL echo "select rtrim(value) from v\$parameter where name = 'background_dump_dest';" >> $WORKDIR/$GENSQL echo "exit;" >> $WORKDIR/$GENSQL BACKGROUNDDUMP=`sqlplus -s system/$SYSTEM_001PR @$WORKDIR/$GENSQL` rm $WORKDIR/$GENSQL cd $BACKGROUNDDUMP for i in `ls alert*.log` do echo ......Rename $i to $i$FILENAME cp $i $i$FILENAME > $i done done # #-----------------------------------------------# # SQL*Net Logs in NETWORK/LOGS # #-----------------------------------------------# # echo "Rename all sqlnet logs in NETWORK/LOG" echo "-------------------------------------" cd $ORACLE_HOME/network/log for i in `ls *.log` do echo ......Rename $i to $i$FILENAME cp $i $i$FILENAME > $i done # #-----------------------------------------------# # SQL*Net Logs in $TNS_ADMIN # #-----------------------------------------------# # echo "Rename all sqlnet logs in $TNS_ADMIN" echo "----------------------------------------" cd $TNS_ADMIN for i in `ls *.log` do echo ......Rename $i to $i$FILENAME cp $i $i$FILENAME > $i done # #-----------------------------------------------# # corefiles in CDUMP #-----------------------------------------------# # echo "Checking corefiles in CDUMP" echo "---------------------------" > $WORKDIR/$ERRFILE cat $WORKDIR/$SIDFILE | while read siddie do export ORACLE_SID=$siddie echo " Checking corefiles for SID : $ORACLE_SID" echo " ---------------------------------" echo "set heading off" > $WORKDIR/$GENSQL echo "set pages 0" >> $WORKDIR/$GENSQL echo "set feed off " >> $WORKDIR/$GENSQL echo "set echo off" >> $WORKDIR/$GENSQL echo "select rtrim(value) from v\$parameter where name = 'core_dump_dest';" >> $WORKDIR/$GENSQL echo "exit;" >> $WORKDIR/$GENSQL COREDUMPDEST=`sqlplus -s system/$SYSTEM_001PR @$WORKDIR/$GENSQL` rm $WORKDIR/$GENSQL cd $COREDUMPDEST find . -mtime +1 -name core_\* -exec rm -rf {} \; for i in `ls ../cdump` do echo "Corefilename : $i" >> $WORKDIR/$ERRFILE cd $i file core >> $WORKDIR/$ERRFILE cd .. done done if [ -s $WORKDIR/$ERRFILE ] then mailx -s "`uname -n`:$ORACLE_SID: New Corefiles" oradba < $WORKDIR/$ERRFILE echo "DBA mailed with new corefiles" fi; rm $WORKDIR/$SIDFILE