Here is a script that I use to remove media.  It has to do a reply for each
tape.  The section on looking for at "q req" and responding should do about
what you want.  The functions at the top are from an old script and not used
in this one.  I am short on time so I did not clean it up for you.  Sorry.


--
Phillip Ford
Senior Software Specialist
Corporate Computer Center
Schering-Plough Corp.
(901) 320-4462
(901) 320-4856 FAX
[EMAIL PROTECTED]




*********************************************************************
This message and any attachments are solely for the intended recipient. If you are not 
the intended recipient, disclosure, copying, use or distribution of the information 
included in this message is prohibited -- Please immediately and permanently delete.

#!/usr/bin/sh
#set -x

# file /var/operlib/adsm/remove_drm


# sub to check process to see if it is still running
check_process() {
        process=`dsmadmc -id=$usr -pass=$pw q proc $job1 | grep -c 'MOVE DRMEDIA'`
        if [ $debug -gt 0 ]; then
           echo process is $process 
        fi
        if [ $debug -gt 1 ]; then
           process=1
           echo resetting process to $process 
        fi
}
# sub to get request number 
get_request() {
        request=0
        req=""
        dsmadmc -id=$usr -pass=$pw q request | grep 'Remove 3570' | read x1 req x3 x4
        if [ $debug -gt 0 ]; then
           echo req is $req
        fi
        if [ $debug -gt 1 ]; then
           req="026:"
           echo resetting req to $req 
        fi
        if [ "X${req}" != "X" ]; then
           len=`expr length $req`
           len=`expr $len - 1`
           req=`expr substr $req 1 $len`
           request=`expr $req + 0`
        fi
        if [ $debug -gt 0 ]; then
           echo request is $request
        fi
        if [ $debug -gt 1 ]; then
           request=1
           echo resetting request to $request 
        fi
}

# debug - 0 no debug   1-print  2-simulate
debug=0
lib=lib0

if [ $debug -gt 0 ]; then
   echo debug is on and set to $debug
   echo library to use is $lib
fi




cat /etc/adsm/adsm | read usr pw

CMD="dsmadmc -id=$usr -password=$pw"
CMD1="dsmadmc -id=$usr -password=$pw -comma "
$CMD "move drm * wherestate=mountable  tostate=vault remove=untileefull" > 
/tmp/checkout_log
if [ $? -eq 0 ]; then
      RETRY=0
      sleep 30
      while true
      do
        $CMD q request > /tmp/checkout_ask
        grep ANR8322I /tmp/checkout_ask > /dev/null

        if [ $? -eq 0 ]; then
           RETRY=0
           grep ANR8322I /tmp/checkout_ask |grep "Remove LTO volume" |awk '{print $2}' 
> /tmp/checkout_reply
           COMMAND=`sed s/://g  /tmp/checkout_reply`
           $CMD "reply $COMMAND" > /dev/null
           rm /tmp/checkout_*
           sleep 30
        else

#          now check if move drm is still running - if not quit
           i=`$CMD1 "q proc " | /var/operlib/adsm/cleanhdrs | grep -c "MOVE DRMEDIA"`
           if [ "$i" = "0" ]; then
              rm /tmp/checkout_*
              break
           fi 
           rm /tmp/checkout_*
           sleep 30

#           if (( $RETRY<30 )) ; then
#              RETRY=`expr $RETRY + 1`
#           else
#              break
#           fi
        fi
      done
fi



Reply via email to