On Friday 18 December 2020 03:03:39 Gene Heskett wrote:

> On Friday 18 December 2020 01:09:02 Gene Heskett wrote:
> > On Thursday 17 December 2020 22:23:16 Nathan Stratton Treadway wrote:
> > > On Thu, Dec 17, 2020 at 01:58:27 -0500, Gene Heskett wrote:
> > > > Here is the completed output of that command:
> > > >  root@coyote:~$ su amanda -c "/usr/local/sbin/amstatus Daily"
> > >
> > > [...]
> > >
> > > > taped           :  78     13416m     13308m (100.81%) (100.81%)
> > > >     tape 1      :  79     24046m     24046m ( 37.57%) Dailys-21
> > > > (79 parts)
> > >
> > > Okay, those two lines are the section in question from your ouput.
> > > In this case, the "taped" line *does* have statistics on that same
> > > line, so the existing logic in the script should have worked fine,
> > > at least on this run.
> > >
> > > On Thu, Dec 17, 2020 at 06:03:38 -0500, Gene Heskett wrote:
> > > > But lets fix the current problem first, it screwed up last night
> > > > on only 1 vtape. Thast means the edit I made last night, has
> > > > converted it into a full time failure.
> > >
> > > Did you get this fixed?  If not, post the info on the edit you
> > > made and the output from last night's run....
> >
> > I will once this run is done.
> >
> > >                                           Nathan
>
> The edited file, wordwrap off:
> ------------------------------
> #!/bin/bash
> # this script is called by backup.sh (flush.sh too) to append the
> # current indices and configs in effect at the time amdump was last
> run # affording a good chance of being able to do a bare metal
> recovery # somewhat less painfully than they normally are.
> # script Copyright 2006 Gene Heskett, license=GPLv2
>
> # Read config
> . /GenesAmandaHelper-0.61/gene.conf
>
> PATH=/bin:/usr/local/sbin:/usr/bin
> #INDICE_PATH=$INDICE_PATH/$1
> echo INDICE_PATH in bak-indice-configs now=$INDICE_PATH
> # 2010/09 recently amanda has stopped using the 'data' link as a
> pointer to the right 'tape', so... #if [ $# -ne 1 ] ; then
> if [ $# -ne 2 ] ; then
>       echo "The amanda configuration MUST be the first argument to this
> script" echo "And the TAPENUM must be the 2nd argument to this script"
> exit 1
> else
>       CONFIGNAME=$1
>       CONFPATH=$BASE_CONFPATH/${CONFIGNAME}
>       TAPENUM=$2
>       DATALOC="slot"$TAPENUM
>       echo "Line 24 DATALOC="$DATALOC
> fi
>
>
> # this is an attempt to derive the tape number for a rewrite of the
> archiving now done # Change this hard coded path to whatever you are
> using for this particular cache, it does NOT # go into your disklist!
>
> #temp stuff these two
> if [ $DUMMY -eq 1 ] ; then
>       echo "$0 started, mydir=$MYDIR config=$1 CONFPATH=${CONFPATH}"
> fi
>
> if [[ -d $MYDIR'/config-bak' ]] ; then
>       cd $MYDIR/config-bak
> else
>       echo "ERROR: the data dir $MYDIR/config-bak does not exist"
>       exit 2
> fi
>
> # now get the final tape from the tapelist
> # likewise, change this to your real path
> TAPELIST=$CONFPATH/tapelist
>
> #temp stuff
> echo "Tapelist file to be used TAPELIST=${TAPELIST}"
>
> # strip the tapename and tapenumber out of the string
> if [ -f $TAPELIST ] ; then
>       read TAPEDATE TAPENAME TAPESTATUS junk < $TAPELIST
>       TAPENUM=${TAPENAME##*-}
>       echo "tapename=$TAPENAME, tapenum=$TAPENUM"
> fi
>
> # keep track of the passes on the tapes, sort of.
> # first, check to see if old style name exists and use it if it does
> #if [ -f dd.report.$TAPENUM ] ; then
> #        read TAPEUSECOUNT < dd.report.$TAPENUM
> #     echo "Line 57 Tape use count obtained from dd.report.$TAPENUM =
> $TAPEUSECOUNT" #fi
>
> # now, if that bombed
> #if [[ $TAPEUSECOUNT -eq "" ]] ; then
> echo "getting tape usage count from dd.report.$TAPENAME"
> if [ -f dd.report.$TAPENAME ]  ; then
>       read TAPEUSECOUNT < dd.report.$TAPENAME
>         echo "Line 71 Tape use count from dd.report.$TAPENAME =
> $TAPEUSECOUNT" fi
>
> echo "line 74 Tapeusecount is now="$TAPEUSECOUNT
> # and if it still bombed out, reset the friggin count
> if [[ $TAPEUSECOUNT -eq "" ]] ; then
>       TAPEUSECOUNT=0
> fi
>
> # increment it
> TAPEUSECOUNT=$(( TAPEUSECOUNT + 1 ))
>
> #some troubelshooting echo's
> echo "This tape "$TAPENAME" has now been used $TAPEUSECOUNT times"
>
> echo "INDICE_PATH=$INDICE_PATH, CONFPATH=$CONFPATH DATALOC=$DATALOC"
>
> # now get rid of the data that was generated the last time this tape
> was used. rm -f configuration.tar.$TAPENAME indices.tar.$TAPENAME
> dd.report.$TAPENAME # this line can leave once all the stuff has been
> renamed else the tapenums are stuck in place! rm -f
> configuration.tar.$TAPENUM indices.tar.$TAPENUM dd.report.$TAPENUM
>
> # Lets see if its safe to write to the tape by generating a new
> dd.report.$TAPENAME # and, so it gets into the email
> touch dd.report.$TAPENAME
>
> # Now set the tape use count as the first line of this refreshed file
> echo "$TAPEUSECOUNT" >  dd.report.$TAPENAME
>
> # and report the invocation name used to line 2 (wrong slot# passed)
> echo "This script is being run as " $0 $* | tee -a dd.report.$TAPENAME
>
> # and report the tapename being used this time on line 3
> echo "using tape $TAPENAME" | tee -a dd.report.$TAPENAME
>
> # if using real tapes AND chg-scsi, enable this next line
> # Is this needed ?
> # mt -f /dev/nst0 tell | tee -a dd.report.$TAPENAME
>
> # if that worked, we should have a current one
> if [ ! -s "dd.report."$TAPENAME ] ; then # -s for exists AND is
> non-zero length echo "dd.report."$TAPENAME" was not created or written
> to"
>       exit 3
> fi
>
> echo "tar up the indices and configs directories as they exist now."
> >> dd.report.$TAPENAME echo "In bak-indices-configs DUMMY="$DUMMY >>
> dd.report.$TAPENAME if [[ $DUMMY -ne 1 ]] ; then
> #     tar -cpsf indices.tar.${TAPENAME} $INDICE_PATH  2>&1 >>
> dd.report.$TAPENAME tar -cpf indices.tar.${TAPENAME} $INDICE_PATH 
> 2>&1 >> dd.report.$TAPENAME # tar -cpsf configuration.tar.${TAPENAME}
> $CONFPATH  2>&1 >> dd.report.$TAPENAME tar -cpf
> configuration.tar.${TAPENAME} $CONFPATH  2>&1 >> dd.report.$TAPENAME
> else
>       tar -cpsf indices.tar.${TAPENAME} $INDICE_PATH
>       tar -cpsf configuration.tar.${TAPENAME} $CONFPATH
> fi
>
> # We've now generated the up2date indices & configs
> # Figure out if the tape was written to using amstatus
>
> PARTS_WRITTEN=`${AM_SBIN_DIR}/amstatus $CONFIGNAME | grep taped | awk
> -F: '{print $2}' | awk '{print $1}'` # Ok, then lets make it part of
> the dd.report record
> echo "Parts written = $PARTS_WRITTEN" >> dd.report.$TAPENAME

# and this echo is missing from dd.report.Dailys-25
#running the script by itself $PARTS_WRITTEN is a null.

> #if [ "$PARTS_WRITTEN" -gt 0 ]; then
> #     if [ $DUMMY -eq 1 ] ; then
> #             echo "DUMMY="$DUMMY" indices.tar."$TAPENAME" not written"
> #             echo "DUMMY="$DUMMY" configuration.tar."$TAPENAME" not written"
> #             exit 7 # we ought to replace this with a defined error code 
> just to
> be neat. #    else
>       if [ $VTAPES -eq 1 ] ; then
>                       echo "Using a vtape, so copying the indices & 
> configuration to the
> vtape data dir." # Amanda has stopped using the link 'data' to point
> to the correct tape, breaking this script #                   rm -f
> ${VTAPE_LOCATION}/data/indices.tar # replace outdated file rm -f
> ${VTAPE_LOCATION}/$DATALOC/indices.tar # replace outdated file
>
> #                     cp indices.tar.$TAPENAME 
> ${VTAPE_LOCATION}/data/indices.tar
>                       cp indices.tar.$TAPENAME 
> ${VTAPE_LOCATION}/$DATALOC/indices.tar
>
>                       echo "Here are the contents of indices.tar" >> 
> dd.report.$TAPENAME
> #                     tar tf ${VTAPE_LOCATION}/data/indices.tar >> 
> dd.report.$TAPENAME
>                       tar tf ${VTAPE_LOCATION}/$DATALOC/indices.tar >>
> dd.report.$TAPENAME
>
> #                     rm -f ${VTAPE_LOCATION}/data/configuration.tar # 
> replace outdated
> file rm -f ${VTAPE_LOCATION}/$DATALOC/configuration.tar # replace
> outdated file
>
> #                     cp configuration.tar.$TAPENAME
> ${VTAPE_LOCATION}/data/configuration.tar cp
> configuration.tar.$TAPENAME
> ${VTAPE_LOCATION}/$DATALOC/configuration.tar
>
>                       echo "And here is the contents of configuration.tar" >>
> dd.report.$TAPENAME #                 tar tf
> ${VTAPE_LOCATION}/data/configuration.tar >> dd.report.$TAPENAME tar tf
> ${VTAPE_LOCATION}/$DATALOC/configuration.tar >> dd.report.$TAPENAME
> else
>                       #Real tape
>                       echo "Using a real tape, so writing the indices & 
> configuration
> using dd"
>
>                       # once for the file & once for value
>                       # due to the possibility of a double eof being written 
> by amanda
>                       mt -f /dev/nst0 seod
>
>                       dd if=indices.tar.$TAPENAME of=/dev/nst0 bs=32768 
> conv=sync 2>&1 >>
> dd.report.$TAPENAME if [ $? -ne 0 ] ; then
>                               echo "dd command failed. Amanda configuration & 
> indices not
> written to tape ! (tape full?)"
>                               exit 4
>                       fi
>                       echo "Here is the contents of indices.tar.$TAPENAME"
>                         tar tf indices.tar.$TAPENAME >>
> dd.report.$TAPENAME
>
>                       dd if=configuration.tar.$TAPENAME of=/dev/nst0 bs=32768 
> conv=sync
> 2>&1 >> dd.report.$TAPENAME if [ $? -ne 0 ] ; then
>                               echo "dd command failed. Amanda configuration 
> not written to tape
> ! (tape full?)" exit 5
>                       fi
>                       echo "And here is the contents of 
> configuration.tar.$TAPENAME"
>                       tar tf configuration.tar.$TAPENAME >> 
> dd.report.$TAPENAME
>                       mt -f /dev/nst0 weof 1
>                       echo "Rewinding tape"
>                       mt -f /dev/nst0 rewind
>               fi
> #     fi
>
> #else
> #     echo $TAPENAME" was not written to as amstatus $CONFIGNAME reported
> it had not written any partitions to tape." | tee -a
> dd.report.$TAPENAME
> #     exit 6
> #fi
>
> # with the above data, we can try to troubleshoot if it fubars.
>
> echo "The script "$0" is finished." | tee -a dd.report.$TAPENAME
> echo "Amandatapes usage="`df /amandatapes` |tee -a dd.report.$TAPENAME
>
> # The file /amanda/bak-configs/dd.report.$TAPENAME might have enough
> info # to allow troubleshooting if the proceedure blows up someplace. 
> One can # always add more data outputs in the problem area... :-)
> -----------------------------------------------
>
> Thanks Nathan.
>
> Copyright 2019 by Maurice E. Heskett
> Cheers, Gene Heskett



Copyright 2019 by Maurice E. Heskett
Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>

Reply via email to