############################################################################ # Author: Amos Geng # Date: 09/17/2014 # Purpose: Deleting all the audit file older than retention # Parameter: period -> retention got reduced for each time # retention_start -> should around the oldest file # count_threshold -> maximum files account for each period # retention -> delete by the day ############################################################################ #!/bin/sh period=5 retention_start=110 count_threshold=50000 retention=60 adump_path=`sqlplus -s / as sysdba << ENDSQL SET HEA OFF PAGES 0 SET LINESIZE 150 SET FEEDBACK OFF SET ECHO OFF SELECT value FROM v\\$parameter WHERE name = 'audit_file_dest'; EXIT; ENDSQL` echo $adump_path; while [[ "$retention_start" -ge "$retention" ]] do count=`find $adump_path -name "*.aud" -mtime +${retention_start} | wc -l` if [[ "$count" -lt "$count_threshold" ]]; then find $adump_path -name "*.aud" -mtime +${retention_start} -exec rm {} \; echo "`date`: Found $count files in $retention_start period, and deleted all of them."; else echo "`date`: The audit file count is $count of period $retention_start. The number beyonds threshold $count_threshold, please check." exit; fi; retention_start=$((retention_start-period)); done echo "The clean up job is done";
Your Comments