-#!/bin/sh
+#!/bin/sh
#
# Run this script as root on the machine that has the tape drive, to make a
# level-1 dump containing all files changed since the last full dump.
# You must edit the file `backup-specs' to set the parameters for your site.
# Useful for backup-specs, in case things have to be done slightly
-# differently for different dump levels.
+# differently for different dump levels.
DUMP_LEVEL=1
-# Insure `mail' is in PATH.
+# Insure `mail' is in PATH.
PATH="/usr/ucb:${PATH}"
export PATH
if((hr + 0) < (spec + 0))
print 3600 * (spec - hr) - 60 * mn;
else
- print 3600 * (spec + (24 - hr)) - 60 * mn;
+ print 3600 * (spec + (24 - hr)) - 60 * mn;
}' spec=\"${spec}\"`"
clear
# 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.
+# appear too misleading.
startdate="`date`"
here="`pwd`"
# Logfile name should be in the form ``log-1993-03-18-level-1''
+# They go in the subdirectory `log' of the current directory.
# i.e. year-month-date. This format is useful for sorting by name, since
# logfiles are intentionally kept online for future reference.
-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-${DUMP_LEVEL}
+LOGFILE="log/log-`date | sed -ne '
+ s/[^ ]* *\([^ ]*\) *\([^ ]*\).* \([^ ]*\)$/\3-\1-\2/
+ /-[0-9]$/s/\([0-9]\)$/0\1/
+ /Jan/{s/Jan/01/p;q;}
+ /Feb/{s/Feb/02/p;q;}
+ /Mar/{s/Mar/03/p;q;}
+ /Apr/{s/Apr/04/p;q;}
+ /May/{s/May/05/p;q;}
+ /Jun/{s/Jun/06/p;q;}
+ /Jul/{s/Jul/07/p;q;}
+ /Aug/{s/Aug/08/p;q;}
+ /Sep/{s/Sep/09/p;q;}
+ /Oct/{s/Oct/10/p;q;}
+ /Nov/{s/Nov/11/p;q;}
+ /Dec/{s/Dec/12/p;q;}'`-level-${DUMP_LEVEL}"
localhost="`hostname | sed -e 's/\..*//'`"
-TAR_PART1="/usr/local/bin/tar -c --multi-volume --one-file-system --block=${BLOCKING} --sparse --volno-file=${VOLNO_FILE}"
+TAR_PART1="${TAR} -c --multi-volume --one-file-system --blocking=${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
# Most everything below here is run in a subshell for which all output is
# piped through `tee' to the logfile. Doing this, instead of having
# multiple pipelines all over the place, is cleaner and allows access to
-# the exit value from various commands more easily.
+# the exit value from various commands more easily.
(
- # Caveat: Some version of `mt' require `-t', not `-f'.
+ # 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
date="`date`"
remotehost="`echo \"${1}\" | sed -e 's/:.*$//'`"
fi
# `rsh' doesn't exit with the exit status of the remote command. What
- # stupid lossage. TODO: think of a reliable workaround.
+ # stupid lossage. TODO: think of a reliable workaround.
if [ $? -ne 0 ] ; then
echo "Backup of ${1} failed."
# I'm assuming that the tar will have written an empty