#!/sbin/sh

touch rawfile
# The rawfile might already be there, but just in case
while [ 1 -eq 1 ]					# Whatever, just
do it

do

size=`ls -l rawfile | awk '{print $5}'` 		# Speaks
for itself

blocks=`expr "$size" / 512`			# Ditto. 512 was
a good blocksize for 4mm DAT. Just be consistent

full=`df -k . | grep
 | awk '{print $6}'`		# Unfortunately, this only gets
checked once per glitch. Maybe a fork?

echo $size
# Just so I know how it's going

echo $blocks

echo $full

if [ $full -gt
90 ]

then

      echo "filesystem is filling up"			# You
get the point here

      exit 1

fi

mt -f /dev/tape rewind
# Let's not take chances. Start at the beginning.

sleep 60
# The drive hates this tape as it is. Give it a rest.

mt -f
/dev/rmt/tps1d6nrv fsr $blocks		# However big rawfile is
already, we can skip that on the tape

dd if=/dev/rmt/tps1d6nrv bs=512 >>
rawfile	# Let's get as much as we can

if [ $? -eq 0 ] 

then
# If dd got clipped by a tape error, there's still work to do,	


echo "dd exited cleanly"			# if not, it must have
gotten to the end of the file this time

     exit 0
# without a hitch. We're done.

fi

done