*** empty log message ***

This commit is contained in:
François Pinard
1994-11-16 02:48:46 +00:00
parent 10b4901399
commit 7c1dad98bb
5 changed files with 345 additions and 70 deletions
+1 -1
View File
@@ -86,7 +86,7 @@ LOGFILE="log-`date | sed -ne '
localhost="`hostname | sed -e 's/\..*//'`"
TAR_PART1="${TAR} -c --multi-volume --one-file-system --block=${BLOCKING} --sparse --volno-file=${VOLNO_FILE}"
TAR_PART1="${TAR} -c --multi-volume --one-file-system --block-size=${BLOCKING} --sparse --volno-file=${VOLNO_FILE}"
# Only use --info-script if DUMP_REMIND_SCRIPT was defined in backup-specs
if [ "x${DUMP_REMIND_SCRIPT}" != "x" ]; then
+107 -68
View File
@@ -8,12 +8,13 @@
#
# You must edit the file `backup-specs' to set the parameters for your site.
# Insure `mail' is in PATH.
PATH="/usr/ucb:${PATH}"
export PATH
if [ ! -w / ]; then
echo The backup must be run as root,
echo or else some files will fail to be dumped.
echo "The backup must be run as root or else some files will fail to be dumped."
exit 1
else
false
fi
# Get the values of BACKUP_DIRS and BACKUP_FILES, and other variables.
@@ -22,64 +23,99 @@ fi
# Maybe sleep until around specified or default hour.
#
if [ "${1}" != "now" ]; then
if [ "${1}"x != x ]; then
spec=${1}
if [ "${1}x" != "x" ]; then
spec="${1}"
else
spec=${BACKUP_HOUR}
spec="${BACKUP_HOUR}"
fi
pausetime=`date | awk '{hr=substr($4,1,2);\\
mn=substr($4,4,2);\\
if((hr+0)<spec+0)\\
print 3600*(spec-hr)-60*mn;\\
else\\
print 3600*(spec+(24-hr))-60*mn; }' spec=$spec`
pausetime="`date | awk '
{
hr = substr($4, 1, 2);
mn = substr($4, 4, 2);
if((hr + 0) < (spec + 0))
print 3600 * (spec - hr) - 60 * mn;
else
print 3600 * (spec + (24 - hr)) - 60 * mn;
}' spec=\"${spec}\"`"
clear
cat ./dont_touch
sleep ${pausetime}
# Put your favorite message here. We just want a screenful of obnoxious
# caps warning people from messing with the dedicated terminal.
awk 'BEGIN {
for (i = 0; i < 30; i++)
print " D O N O T T O U C H T H I S T E R M I N A L !!!!!"
}' /dev/null
sleep "${pausetime}"
fi
# start doing things
here=`pwd`
LOGFILE=log-`date | awk '{print $2 "-" $3 "-" $6}'`-level-1
HOST=`hostname | sed 's/\..*//'`
# Put startdate in the subject line of mailed report, since if it happens
# to run longer than 24 hours (as may be the case if someone forgets to put
# in the next volume of the tape in adequate time), the backup date won't
# appear too misleading.
startdate="`date`"
here="`pwd`"
# Logfile name should be in the form ``log-1993-03-18-full''
# i.e. year-month-date. This format is useful for sorting by name.
LOGFILE=log-`date | awk '
BEGIN {
d["Jan"] = "01"; d["Feb"] = "02"; d["Mar"] = "03";
d["Apr"] = "04"; d["May"] = "05"; d["Jun"] = "06";
d["Jul"] = "07"; d["Aug"] = "08"; d["Sep"] = "09";
d["Oct"] = "10"; d["Nov"] = "11"; d["Dec"] = "12";
}
{
if ($3 < 10)
$3 = "0" $3;
print $6 "-" d[$2] "-" $3;
}'`-level-1
HOST="`hostname | sed -e 's/\..*//'`"
TAR_PART1="/usr/local/bin/tar -c --multi-volume --one-file-system --block=${BLOCKING} --sparse --volno-file=${VOLNO_FILE}"
# Only use --info-script if DUMP_REMIND_SCRIPT was defined in backup-specs
if [ x != "x${DUMP_REMIND_SCRIPT}" ]; then
if [ "x${DUMP_REMIND_SCRIPT}" != "x" ]; then
TAR_PART1="${TAR_PART1} --info-script=${DUMP_REMIND_SCRIPT}"
fi
# Make sure the log file did not already exist. Create it.
if [ -f ${LOGFILE} ] ; then
echo Log file ${LOGFILE} already exists.
if [ -f "${LOGFILE}" ] ; then
echo "Log file ${LOGFILE} already exists."
exit 1
else
touch ${LOGFILE}
touch "${LOGFILE}"
fi
mt -f ${TAPE_FILE} rewind
rm ${VOLNO_FILE}
# Caveat: Some version of `mt' require `-t', not `-f'.
mt -f "${TAPE_FILE}" rewind
rm -f "${VOLNO_FILE}"
set ${BACKUP_DIRS}
set - "${BACKUP_DIRS}"
while [ $# -ne 0 ] ; do
host=`echo ${1} | sed 's/:.*$//'`
fs=`echo ${1} | sed 's/^.*://'`
date=`date`
fsname=`echo ${1} | sed 's/\//:/g'`
host="`echo \"${1}\" | sed -e 's/:.*$//'`"
fs="`echo \"${1}\" | sed -e 's/^.*://'`"
date="`date`"
fsname="`echo \"${1}\" | sed -e 's/\//:/g'`"
# This filename must be absolute; it is opened on the machine that runs tar.
# This filename must be absolute; it is opened on the machine that runs tar.
TAR_PART2="--listed=/etc/tar-backup/temp.level-1"
TAR_PART3="--label='level 1 backup of ${fs} on ${host} at ${date}' -C ${fs} ."
echo Backing up ${1} at ${date} | tee -a ${LOGFILE}
echo Last full dump on this filesystem: | tee -a ${LOGFILE}
echo "Backing up ${1} at ${date}" | tee -a "${LOGFILE}"
echo "Last full dump on this filesystem:" | "tee -a ${LOGFILE}"
if [ ${HOST} != ${host} ] ; then
rsh ${host} "ls -l /etc/tar-backup/${fsname}.level-0; \
cp /etc/tar-backup/${fsname}.level-0 /etc/tar-backup/temp.level-1" \
2>&1 | tee -a ${LOGFILE}
if [ "z${host}" != "z${HOST}" ] ; then
rsh "${host}" "ls -l /etc/tar-backup/${fsname}.level-0; \
cp /etc/tar-backup/${fsname}.level-0 /etc/tar-backup/temp.level-1" 2>&1 \
| tee -a "${LOGFILE}"
else
ls -l /etc/tar-backup/${fsname}.level-0 2>&1 | tee -a ${LOGFILE}
cp /etc/tar-backup/${fsname}.level-0 /etc/tar-backup/temp.level-1 2>&1 | tee -a ${LOGFILE}
@@ -87,74 +123,77 @@ while [ $# -ne 0 ] ; do
# Actually back things up.
if [ ${HOST} != ${host} ] ; then
rsh ${host} ${TAR_PART1} -f ${HOST}:${TAPE_FILE} ${TAR_PART2} ${TAR_PART3} 2>&1 | tee -a ${LOGFILE}
if [ "z${host}" != "z${HOST}" ] ; then
rsh "${host}" ${TAR_PART1} -f ${HOST}:${TAPE_FILE} ${TAR_PART2} ${TAR_PART3} 2>&1 \
| tee -a "${LOGFILE}"
else
# Using `sh -c exec' causes nested quoting and shell substitution
# to be handled here in the same way rsh handles it.
sh -c "exec ${TAR_PART1} -f ${TAPE_FILE} ${TAR_PART2} ${TAR_PART3}" 2>&1 | tee -a ${LOGFILE}
# Using `sh -c exec' causes nested quoting and shell substitution
# to be handled here in the same way rsh handles it.
sh -c "exec ${TAR_PART1} -f ${TAPE_FILE} ${TAR_PART2} ${TAR_PART3}" 2>&1 | tee -a "${LOGFILE}"
fi
# This doesn't presently work, of course, because $? is set to the exit
# status of the last thing in the pipeline of the previous command,
# namely `tee'. We really want the exit status of the sh command
# running tar, but getting this seems to be nontrivial. --friedman
if [ $? -ne 0 ] ; then
echo Backup of ${1} failed. | tee -a ${LOGFILE}
echo "Backup of ${1} failed." | tee -a "${LOGFILE}"
# I'm assuming that the tar will have written an empty
# file to the tape, otherwise I should do a cat here.
else
if [ ${HOST} != ${host} ] ; then
rsh ${host} mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/${fsname}.level-1 2>&1 | tee -a ${LOGFILE}
rsh ${host} mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/${fsname}.level-1 2>&1 \
| tee -a ${LOGFILE}
else
mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/${fsname}.level-1 2>&1 | tee -a ${LOGFILE}
mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/${fsname}.level-1 2>&1 \
| tee -a ${LOGFILE}
fi
fi
${TAPE_STATUS} | tee -a ${LOGFILE}
${TAPE_STATUS} | tee -a "${LOGFILE}"
sleep 60
shift
done
# Dump any individual files requested.
if [ x != "x${BACKUP_FILES}" ] ; then
date=`date`
if [ "x${BACKUP_FILES}" != "x" ] ; then
date="`date`"
TAR_PART2="--listed=/etc/tar-backup/temp.level-1"
TAR_PART3="--label='Incremental backup of miscellaneous files at ${date}'"
echo Backing up miscellaneous files at ${date} | tee -a ${LOGFILE}
echo Last full dump of these files: | tee -a ${LOGFILE}
ls -l /etc/tar-backup/misc.level-0 2>&1 | tee -a ${LOGFILE}
echo "Backing up miscellaneous files at ${date}" | tee -a "${LOGFILE}"
echo "Last full dump of these files:" | tee -a "${LOGFILE}"
ls -l /etc/tar-backup/misc.level-0 2>&1 | tee -a "${LOGFILE}"
rm -f /etc/tar-backup/temp.level-1 2>&1 | tee -a ${LOGFILE}
cp /etc/tar-backup/misc.level-0 /etc/tar-backup/temp.level-1 2>&1 | tee -a ${LOGFILE}
rm -f /etc/tar-backup/temp.level-1 2>&1 | tee -a "${LOGFILE}"
cp /etc/tar-backup/misc.level-0 /etc/tar-backup/temp.level-1 2>&1 | tee -a "${LOGFILE}"
# Using `sh -c exec' causes nested quoting and shell substitution
# to be handled here in the same way rsh handles it.
sh -c "exec ${TAR_PART1} -f ${TAPE_FILE} ${TAR_PART2} ${TAR_PART3} ${BACKUP_FILES}" 2>&1 \
| tee -a "${LOGFILE}"
echo Backing up miscellaneous files at ${date} | tee -a ${LOGFILE}
# Using `sh -c exec' causes nested quoting and shell substitution
# to be handled here in the same way rsh handles it.
sh -c "exec ${TAR_PART1} -f ${TAPE_FILE} ${TAR_PART2} ${TAR_PART3} \
${BACKUP_FILES}" 2>&1 | tee -a ${LOGFILE}
# This doesn't presently work, of course, because $? is set to the exit
# status of the last thing in the pipeline of the previous command,
# namely `tee'. We really want the exit status of the sh command
# running tar, but getting this seems to be nontrivial. --friedman
if [ $? -ne 0 ] ; then
echo Backup of miscellaneous files failed. | tee -a ${LOGFILE}
echo "Backup of miscellaneous files failed." | tee -a "${LOGFILE}"
# I'm assuming that the tar will have written an empty
# file to the tape, otherwise I should do a cat here.
else
mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/misc.level-1 2>&1 | tee -a ${LOGFILE}
mv -f /etc/tar-backup/temp.level-1 /etc/tar-backup/misc.level-1 2>&1 | tee -a "${LOGFILE}"
fi
${TAPE_STATUS} | tee -a ${LOGFILE}
${TAPE_STATUS} | tee -a "${LOGFILE}"
else
echo No miscellaneous files specified | tee -a ${LOGFILE}
false
echo "No miscellaneous files specified" | tee -a "${LOGFILE}"
fi
mt -f ${TAPE_FILE} rewind
mt -f ${TAPE_FILE} offl
# Caveat: some versions of `mt' use `-t' instead of `-f'.
mt -f "${TAPE_FILE}" rewind
mt -f "${TAPE_FILE}" offl
echo Sending the dump log to ${ADMINISTRATOR}
cat ${LOGFILE} | sed -f logfile.sed > ${LOGFILE}.tmp
/usr/ucb/mail -s "Results of backup on `date`" ${ADMINISTRATOR} < ${LOGFILE}.tmp
rm -f ${LOGFILE}.tmp
echo "Sending the dump log to ${ADMINISTRATOR}"
mail -s "Results of backup started ${startdate}" ${ADMINISTRATOR} < "${LOGFILE}"
# eof