The below script that I was having problems with is working for me now thanks to Steve's suggestion; however when I changed the script to do a Level 1 tar archive, I get the following output after tar_verify:

Level-1 Backup END
Level-1 Backup Verify Wed Jul 24 15:38:47 PDT 2002
tar: echo not found in archive
tar: Level-1 Backup Verify END not found in archive

I did a tar tv of the tape and saw that the backup was completed, but am not sure why I get the above message. Also after running the script, 2 files are created on the tape. One of which contains the backup archive and the other which is empty - at least var t doesn't print anything out. Shouldn't the tar command just create one file?


Here is the script I am using:


#! /bin/sh
# Variables
EMAILTO=backup
DESTFILE=/dev/nrsa0
BACKUPFILES="/var /usr/home"
BACKUPDIR=${HOME}/backup
LEVEL=1

# Load backup functions
cd ${BACKUPDIR}
. backup-functions

# Do the backup
tar_backup

# Test the backup for errors
tar_verify

# Email the backup report
mail_report

# Done
exit

and here is the .backup-functions file for the shell script:

# Variables
L0DATESTAMP="${BACKUPDIR}/.level0_datestamp"
NOW=`date`

# tar_backup function: does the archiving
tar_backup ()
{
echo "Level-${LEVEL} Backup ${NOW}"
if [ "${LEVEL}" = "0" ]; then
# make Level-0 datestamp
echo ${NOW} > ${L0DATESTAMP}
# Level-0 backup
tar --create --verbose \
--file ${DESTFILE} \
--label "Level-${LEVEL} Backup ${NOW}" \
${BACKUPFILES}
elif [ "${LEVEL}" = "1" ]; then
# get last Level-0 datestamp
LAST=`cat ${L0DATESTAMP}`
# Level-1 backup
tar --create --verbose \
--file ${DESTFILE} \
--after-date "${LAST}" \
--label "Level-${LEVEL} Backup from ${LAST} to ${NOW}" \
${BACKUPFILES}
else
# Backup level error
echo "Error: Level-${LEVEL} unknown"
exit
fi
echo "Level-${LEVEL} Backup END"
}

# tar_verify function: test the archive for errors
tar_verify ()
{
echo "Level-${LEVEL} Backup Verify ${NOW}"
# Backup verify test
tar --list --verbose \
--file ${DESTFILE} \
echo "Level-${LEVEL} Backup Verify END"
}

# mail_report function: sends backup report
mail_report ()
{
# Email backup report
mail -s "Level-${LEVEL} Backup" "${EMAILTO}" << EOF

###########################################################
Level-${LEVEL} Backup
###########################################################

Host: ${HOSTNAME}
Files: ${BACKUPFILES}

Destination: ${DESTFILE}

###########################################################
Started: ${NOW}
Completed: `date`
###########################################################

EOF
}



Reply via email to