I tried to edit the script (without testing) as,
Code:
#!/bin/ksh
# Variables
email_addresses="tina.naugler@cgi.com m.harley@cgi.com pamela.green@cgi.com"
set -A instance "ont0" "qbc1" "jdbc0" "admin1"
set -A fName "nohup.out" "PHLog.txt" "PSQTlog.txt" "response-Log.txt" "access.log" "wl-domain.log" "weblogic.log" "ServiceAddressQueryResponse.Log.txt"
# these variables will contain the system date to append to the file name
# the DATEday variable can be altered for mid-month backups (but it MUST be reset to the 7th
after backup completed)
DATEday=7
DATEmonth=$(( \( "`date +%m`" + 12 - 1 \) % 12 ))
DATEyear="`date +%y`"
# filler variables
zero="0"
star="*"
underscore="_"
# if the current month is January, then the backup will be for December of the previous year
function setYear {
if [ ${DATEmonth} -eq 1 ]
then
let DATEyear=DATEyear-1
fi
}
# send the temp file in the body of an email to the email addresses specified above
function sendEmails {
index=0
while [[ $index -lt ${#email_addresses[*]} ]]
do
let email_address=${email_addresses[$index]}
/bin/mail -s "${DATEday}-${DATEmonth}-${DATEyear} Log File Backup" $email_address < /tmp/ebccsbkup.tmp
let index=index+1
done
}
# backup files and compress them, then move them to the backup directory for the instance
# the results of the executed commands is written to a temp file
function backupFiles {
let y=0;
while [[ $y -lt ${#fName[*] ]]
do
if [ ${fName[y]} = "access.log" ] || [ ${fName[y]} = "weblogic.log" ]; then
if [ -f "access.log" ] || [ -f "weblogic.log" ]; then
tar cvf bk${fName[y]}.${DATEyear}${DATEmonth}.tar ${fName[y]}.${zero}${star} >> /tmp/ebccsbkup.tmp
mv bk${fName[y]}.${DATEyear}$DATEmonth.tar $fName[y].${DATEyear}${DATEmonth}${underscore}${DATEday}.tar >> /tmp/ebccsbkup.tmp
gzip ${fName[y]}.${DATEyear}${DATEmonth}${underscore}${DATEday}.tar >> /tmp/ebccsbkup.tmp
else
echo "${fName[y]} does not exist in ${instance[x]}" >> /tmp/ebccsbkup.tmp
fi
elif [${fName[y]} = "wl-domain.log"]; then
if [ -f "wl-domain.log" ]; then
tar cvf ${fName[y]}.${DATEyear}${DATEmonth}${underscore}${DATEday}.tar ${fName[y]} >> /tmp/ebccsbkup.tmp
gzip ${fName[y]}.${DATEyear}${DATEmonth}${underscore}${DATEday}.tar >> /tmp/ebccsbkup.tmp
else
echo "${fName[y]} does not exist in ${instance[x]}" >> /tmp/ebccsbkup.tmp
fi
else
if [ -f $fName[y]} ]; then
tar cvf bk${fName[y]}.${DATEyear}$DATEmonth.tar ${fName[y]}.${DATEyear}$DATEmonth${star} >> /tmp/ebccsbkup.tmp
mv bk${fName[y]}.${DATEyear}$DATEmonth.tar ${fName[y]}.${DATEyear}${DATEmonth}${underscore}${DATEday}.tar >> /tmp/ebccsbkup.tmp
gzip ${fName[y]}.${DATEyear}${DATEmonth}${underscore}${DATEday}.tar >> /tmp/ebccsbkup.tmp
else
echo "${fName[y]} does not exist in ${instance[x]}" >> /tmp/ebccsbkup.tmp
fi
fi
echo "\n" >> /tmp/ebccsbkup.tmp
let y=y+1
done
mv *.tar.gz /u01/${instance[x]}/ >> /tmp/ebccsbkup.tmp
}
# loop through the instances and call function backupFiles
function setInstance {
echo "eBCCS Monthly Log Backup ${DATEday}-${DATEmonth}-${DATEyear}" > /tmp/ebccsbkup.temp
let x=0
while [[ $x -lt ${#instance[*]} ]]
do
echo "${instance[x]} testing..."
echo "\n" >> /tmp/ebccsbkup.tmp
echo "${instance[x]} Log Files" >> /tmp/ebccsbkup.tmp
cd /opt/bea/${instance[x]}/wls6.1/config/bles/logs
backupFiles
let x=x+1
done
sendEmails
}
setYear
setInstance
exit 0
# END ###