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:
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
Post a Comment