Tape Backup
!/bin/bash
# Backup script to backup user data to tape
# Some variables to specify
tape_dev="/dev/st0"
tape_size="20/40GB"
backup_dirs="/etc /shares /var"
email="reports@pcb.co.za"
log_file="/var/log/backup.log"
##########################################################
mv $log_file.4 $log_file.5
mv $log_file.3 $log_file.4
mv $log_file.2 $log_file.3
mv $log_file.1 $log_file.2
mv $log_file $log_file.1
##########################################################
host=`hostname`
data_size=`du -sch $backup_dirs | grep total`
begin=`date`
# Write start date to log
echo "Started: `date`" > $log_file
echo "Backup of $host data ${data_size}" >> $log_file
echo "" >> $log_file
if test `/bin/mt -f $tape_dev status|grep -c ONLINE` -ge 1;
then
tapestatus="Tape detected Proceeding with backup!"
# Do the backup and generate a log
# if tar -czvf $tape_dev $backup_dirs >> $log_file 2>&1
if tar -czvf $tape_dev $backup_dirs --label="Backup created on `date '+%d-%B-%Y'`." >> $log_file 2>&1
then
status="successful"
else
status="error"
fi
else
status="error"
tapestatus="No tape detected!!!"
echo "No tape detected!!!" >> $log_file
fi
# Write end date to log
echo "" >> $log_file
echo "Completed: `date` Status: $status" >> $log_file
# email a report
mail -s "Backup $status at $host" "$email" << EOF
===================================================
${data_size} data
${tape_size} tape
Tape Status $tapestatus
`head ${log_file}`
.
.
.
`tail ${log_file}`
===================================================
Backup Script version ${version}
EOF
# Rewind & Eject tape
mt -f $tape_dev rewind
mt -f $tape_dev offline