############################################################################
# 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