#!/bin/sh # start doing things TOBACKUP="albert:/" HOST=`hostname | sed 's/\..*//'` TAPEFILE=/dev/rfd0a LOGFILE=tar-out BLOCKING=20 TAR_PART1="/usr/local/bin/tar clbfVM $BLOCKING" rm -f $LOGFILE mt -f $TAPEFILE rewind host=`echo $TOBACKUP | sed 's/:.*$//'`; fs=`echo $TOBACKUP | sed 's/^.*://'`; date=`date`; fsname=`echo $TOBACKUP | sed 's/\//:/g'` TAR_PART2="'Weekly backup of $fs on $host at $date' -C $fs ." echo Backing up $TOBACKUP at $date | tee -a $LOGFILE # Actually back things up. if [ $HOST != $host ] ; then rsh $host $TAR_PART1 $HOST:$TAPEFILE $TAR_PART2 else sh -c "exec $TAR_PART1 $TAPEFILE $TAR_PART2" fi if [ $? -ne 0 ] ; then echo Backup of $TOBACKUP failed. | tee -a $LOGFILE echo mts at time of failure | tee -a $LOGFILE mts -t $TAPEFILE | 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 echo $date > $fsname.lasttar fi sleep 60; mt -f $TAPEFILE rewind mt -f $TAPEFILE offl