Compare commits

...

3 Commits

14
mkbak_media.sh Normal file → Executable file
View File

@ -37,16 +37,20 @@ fi
info "Backing up new directories to $MEDIA_ID in $DEV." info "Backing up new directories to $MEDIA_ID in $DEV."
if [ ! -f "$LIB" ]; then if [ ! -f "$LIB" ]; then
echo "Directory;Media ID;Date" > $LIB echo "Directory;Media ID;File;Block;Date" > $LIB
fi fi
info "Configuring tape drive" info "Configuring tape drive"
# mt-st -f $DEV stsetoptions scsi2logical mt-st -f $DEV stsetoptions scsi2logical
mt-st -f $DEV compression 0 mt-st -f $DEV compression 0
if [ "$MODE" == "append" ]; then if [ "$MODE" == "append" ]; then
info "Moving tape to end..." info "Append to end of data? [ctrl+c to cancel]"
read a
mt-st -f $DEV eod mt-st -f $DEV eod
elif [ "$MODE" == "here" ]; then
info "Appending to tape at current position. This may overwrite existing data. Are you sure? [ctrl+c to cancel]"
read a
else else
warn "Rewinding tape. This will delete all existing data on tape. Are you sure? [ctrl+c to cancel]" warn "Rewinding tape. This will delete all existing data on tape. Are you sure? [ctrl+c to cancel]"
read a read a
@ -74,13 +78,15 @@ for dir in *; do
continue; continue;
fi fi
info "Appending $dir to tape ($lsize MB, $rsize MB available)" info "Appending $dir to tape ($lsize MB, $rsize MB available)"
fileno=`mt-st -f $DEV status | sed -n 's/File number=\([0-9]\+\).*/\1/p'`
block=`mt-st -f $DEV tell | sed -n 's/.*At block \([0-9]\+\).*/\1/p'`
tar cvO "$dir" | dd of=$DEV bs=512k tar cvO "$dir" | dd of=$DEV bs=512k
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
err "An error occured writing the backup to tape. Aborting." err "An error occured writing the backup to tape. Aborting."
exit exit
fi fi
date=`date` date=`date`
echo "$dir;$MEDIA_ID;$date" >> $LIB echo "$dir;$MEDIA_ID;$fileno;$block;$date" >> $LIB
done done
info "Rewinding and ejecting tape" info "Rewinding and ejecting tape"