Oracle 跟踪/告警/监听日志的清理脚本



作者: lōττéry©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]



**** 避免太多小文件导致系统的索引空间不足..

[root ~]# cat  del_oracle_log.sh
#!/bin/bash
source /home/oracle/.bash_profile

function audit_log()
{   #---audit_log日志跟踪文件
    #audit_log=$(strings $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora|grep -i audit_file_dest|awk -F'=' '{print $NF}'|sed "s/'//g")
    audit_log=`sqlplus  -s /nolog <<END
    connect lottery/lottery
    set feedback off
    set head off
    select value from v\\$parameter where name='audit_file_dest';
END` 
    cd $audit_log
    pwd=`pwd`
    if [ $audit_log == $pwd ]
      then 
         ls | xargs -n 10 rm -rf
         echo '-------------------清理完------'$audit_log'路径'
    fi 
}

function log_xml()
{   #---Diag Alert -- log.xml文件的处理  只保留一个log.xml即可
    log_xml=$(dirname `lsnrctl show log_file|grep -i log_file|awk '{print $NF}'`)
    cd $log_xml
    pwd=`pwd`
    if [ $log_xml == $pwd ]
     then  
      echo `ls |grep  -v log.xml` | xargs -n 10 rm -rf
      echo '-------------------清理完------'$log_xml'路径'
    fi
}

function listener()
{   #---listener.log文件的处理 
    listener_log=$(lsnrctl show trc_directory|grep -i trc_directory|awk '{print $NF}')
    cd $listener_log
    pwd=`pwd`
     if [ $listener_log == $pwd ]
       then  
         echo '' > listener.log
         echo '-------------------清理完------'$listener_log'/listener.log'
     fi
}

function alert_log()
{   #----alert.log以外的文件清理 
    alert_log=`sqlplus  -s /nolog <<END
    connect lottery/lottery
    set feedback off
    set head off
    select value from v\\$diag_info where upper(name)=upper('Diag trace');
END`
    cd $alert_log
    pwd=`pwd`
    if [ $alert_log  == $pwd ]
      then
      echo `ls |grep  -v alert `| xargs -n 10 rm -rf
      echo '-------------------清理完------'$alert_log'路径' 
   fi
}

function main()
{     
    if [ `ps -ef|grep oracle|grep -i smon|grep -v grep|wc -l` -eq 1 ]
     then 
      echo '----------------'`date`'------------------开始清理---------------------------'
       #/*每天清理audit_log(跟踪)、log_xml*/ 
       audit_log
       log_xml
       #/*每月1号清理alert_log{异常分析}、listener(监听log)*/ 
       date_=`date +%d`
        if  [ $date_  -eq 1 ] 
          then
           alert_log
           listener
         fi
      echo '----------------'`date`'------------------结束清理---------------------------' 
      fi
}

main



DB创建用户:
     SQL> create user lottery identified by lottery;
     SQL> grant connect to lottery ;
     SQL> grant select any table to lottery;
     SQL> grant select any dictionary to lottery;


此条目发表在  Oracle 分类目录。将 固定连接加入收藏夹。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28602568/viewspace-2136129/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28602568/viewspace-2136129/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值