Skip to main content

Oracle Export Cleaner (Example Script)

Regular database exports can be monitored and cleaned regularly while keeping desired number of successful exports with this linux script. There are two files, one is config file that containing schema names and corresponding schema export path, the other one  is export cleaner script.

app.config file contents:
schema1_name,schema1_export_path
schema2_name,schema2_export_path

export cleaner script:
#!/bin/bash

rm -f /tmp/cleaner.txt

today="$(date +%d%m%Y)"
echo "${today} Oracle Export Cleaner Log\n\n" >> /tmp/cleaner.txt
echo "———-${today} Export Logs———" >> /root/scripts/export_cleaner.log

cat /root/scripts/app.config | while read line
do
schema=${line%,*}
path=${line#*,}
jobname="${schema}_expdp_${today}"
filename="${jobname}.dmp"
logname="${jobname}.log"

cd ${path}

if [ ! -f "${logname}" ]
then
echo "$schema $logname does not exists" >> /root/scripts/export_cleaner.log
echo "$schema $logname does not exists\n\n" >> /tmp/cleaner.txt
else
is_job_completed=$(tail -1 $logname |grep "successfully completed")
if [ "$is_job_completed" == "" ];
then
echo "$schema $logname unsuccessfull" >> /root/scripts/export_cleaner.log
echo "$schema $logname unsuccessfull\n\n" >> /tmp/cleaner.txt
else
echo "$schema $logname successfull" >> /root/scripts/export_cleaner.log
echo "$schema $logname successfull\n\n" >> /tmp/cleaner.txt
ls -t ${schema}_expdp*.log | awk 'NR>2' | xargs rm >> /root/scripts/export_cleaner.log
ls -t ${schema}_expdp*.dmp | awk 'NR>2' | xargs rm >> /root/scripts/export_cleaner.log
fi
fi
done
mailtext=$(cat /tmp/cleaner.txt)
echo -e $mailtext | mail -s "export cleaner" mail@example.com

Comments

Popular posts from this blog