| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 
 | #!/bin/bash#oracle 11gR2 rdbms
 
 #声明oracle环境变量
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
 #声明主机名
 export HOST_NAME=`hostname`
 #声明日期,用于删除几天前的文件
 export DAYS=7
 
 #一台服务器装有多个实例,可使用循环进行删除
 for dbname in instancea instanceb
 do
 export DB_NAME=$dbname
 export DB_UNIQUE_NAME=${DB_NAME}
 export ORACLE_SID=${DB_NAME}
 #当前实例为rac模式节点1,启用该变量
 #export ORACLE_SID=${DB_NAME}1
 #当前实例为rac模式节点2,启用该变量
 #export ORACLE_SID=${DB_NAME}2
 
 #指定存放日志的路径
 DIAGNOSTIC_DEST=${ORACLE_BASE}
 
 #如果audit_trail_dest的一个默认值不生效,会使用下面第二个默认值:
 AUDIT_FILE_DEST=${ORACLE_BASE}/admin/${DB_NAME}/adump
 
 #删除audit_trail_dest第一个默认值下的审计日志,并删除7天前的日志
 find ${ORACLE_HOME}/rdbms/audit -name "${ORACLE_SID}_*.aud" -mtime +${DAYS} -exec rm -f {} \;
 #如果audit_trail_dest的一个默认值不生效,查找第二个默认值下的审计日志,并删除7天前的日志:
 find ${AUDIT_FILE_DEST} -name "${ORACLE_SID}_*.aud" -mtime +${DAYS} -exec rm -f {} \;
 #删除指定路径alert下的文件
 find ${DIAGNOSTIC_DEST}/diag/rdbms/${DB_UNIQUE_NAME}/${ORACLE_SID}/alert -name "log_[0-9]*.xml" -mtime +${DAYS} -exec rm -f {} \;
 #删除指定路径trace下的文件
 find ${DIAGNOSTIC_DEST}/diag/rdbms/${DB_UNIQUE_NAME}/${ORACLE_SID}/trace -name "${ORACLE_SID}_*.tr[c|m]" -mtime +${DAYS} -exec rm -f {} \;
 find ${DIAGNOSTIC_DEST}/diag/rdbms/${DB_UNIQUE_NAME}/${ORACLE_SID}/trace -name "cdmp_*" -mtime +${DAYS} -exec rm -rf {} \;
 done
 
 |