04-22-2008
Need some help with this script -- extra eyes
I have two issues with this script.
1. I cannot seem to get my counters to count correctly.
2. My function to eject to CAP1 or CAP2 is hung in a loop and doens't exit back to the previous function. I would like to be able to select which cap to eject to . Each cap holds only 40 tapes, so when one becomes full, I want to be able to eject to the next.
Thanks
I'd appreciate some help.
# This scripts ejects IP tapes from the STK9310 silo via ACSLS Commands from plebsb01.
# Scripter : 1/31/07
#!/bin/ksh
#set -x
rpt=/export/home/legato/tapemgr/rpts/offsite
dat=`date +"%m%d%y"`
rdat=`date +"%b%d%y_%H%M%S"`
EJECTED_TAPES="$rpt/ejected/eject_tapes_test.041608"
OFFSITE_RPT="$rpt/Offsite.rpt.041608"
EJECT_LOG=$rpt/ejected/ejected_tape.status.log.041608
TOT_TAPE_CT_EJECTED=0
TAPE_CT=0
CAP_TOTAL=40
EJECT40=ejectupto40.log
cat /dev/null > $EJECT040
#--------------------------------------
# L O C A L F U N C T I O N S . . .
#--------------------------------------
EJECT_CAP1()
{
echo "Ejecting to CAP 0,2,1"
# /opt/OMIdtelm/bin/eject_vol -t 3600 -c 0,2,1 -l $EJECTED_TAPES | tee $EJECT_LOG;
echo "Ejecting Completed"
}
EJECT_CAP1()
{
echo "Ejecting to CAP 0,2,2"
# /opt/OMIdtelm/bin/eject_vol -t 3600 -c 0,2,2 -l $EJECTED_TAPES | tee $EJECT_LOG;
echo "Ejecting Completed"
}
#---------------------- EJECT TO CAP FUNCTION ROUTINE ---------------------------
#
EJECT_TO_CAP()
{
echo "EJECT_TO_CAP Routine _ List of tapes to be ejected to cap 0,2,1"; cat $EJECT40
TOT_TAPE_CT_EJECTED=`cat $EJECT40 | wc -l` ; echo $TOT_TAPE_CT_EJECTED
echo " CURRENT tapes Ejected $TAPE_CT of $TOT_TAPES_TO_EJECT"; sleep 1
echo "Select TAPE CAP TO Eject to: Enter 1 for CAP1 or 2 for CAP2 (1,2)"; read cap_option
echo $cap_option
case $cap_option in
1) EJECT_CAP1 ;;
2) EJECT_CAP2 ;;
*) echo "Invalid Selection - Please Re-enter"
esac
cat $EJECT40 >> TAPES_EJECTED.log
cat /dev/null >$EJECT40
sleep 5
}
#------------------------------------------- MAIN ROUTINE
#------------------------------------------
TAPE_ROUTINE ()
{
while read volume until EOF
do
#TAPE_CT=`expr $TAPE_CT + 1`
echo " In tape routine volume ejected $volume TAPE $TAPE_CT of $TOT_TAPES_TO_EJECT"
if [ $TAPE_CT != $CAP_TOTAL ]
then
echo $volume >> $EJECT40
else
echo $volume >> $EJECT40
echo "$TAPE_CT of $TOT_TAPES_TO_EJECT Tapes Ejected CAP is FULL";
EJECT_TO_CAP
TAPE_CT=0
fi
TAPE_CT=`expr $TAPE_CT + 1`
done < $EJECTED_TAPES
EJECT_TO_CAP
TOT_TAPE_CT_EJECTED=`expr $TAPE_CT + $TOT_TAPES_TO_EJECT`
echo " END of Tape Routine .. Total Tapes Ejected >>> $TOT_TAPES_TO_EJECT of $TOT_TAPE_CT_EJECTED"
echo "Total tapes ejected: $TOT_TAPE_CT_EJECTED" >> TAPES_EJECTED.log
mv TAPES_EJECTED.log TOT_TAPES_EJECTED.rpt.$rdat
}
#--------------------------------------
# M A I N . . .
#--------------------------------------
cat $EJECTED_TAPES
TOT_TAPES_TO_EJECT=`cat $EJECTED_TAPES |wc -l`
echo "Total Tapes to eject is: $TOT_TAPES_TO_EJECT ";
echo " Is this the correct list of tapes to eject (y/n)?"
read option
case $option in
y|Y) TAPE_ROUTINE;;
n|N) exit
esac
exit 0
7 More Discussions You Might Find Interesting
1. What is on Your Mind?
If you listen to the files on the computer with ears, your eyes are protected.
Microsoft Text-To-Speech(TTS) voice engine has been installed by default on Windows 2000, XP, Vista, you can find what voice engines have been installed on the computer by following Control Panel->Speech->Speech... (0 Replies)
Discussion started by: tgst
0 Replies
2. Programming
Original code used fwrite instead of putc.
What is expected is that the destination file will be written to. Instead I end up with a zero length file. I'm sure there is something simple I'm missing.
tia.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char... (6 Replies)
Discussion started by: ramen_noodle
6 Replies
3. Shell Programming and Scripting
Hi ,
I am trying to execute the following script.
#!/bin/sh
find . -name "common.log.diff"
if ; then
cp common.log common.log.diff
diff common.log common.log.diff > DIFFERENCE.log
cp common.log common.log.diff
grep "ERROR" DIFFERENCE.log
if ; then
echo "1"
else
echo "0"
fi... (5 Replies)
Discussion started by: himvat
5 Replies
4. Shell Programming and Scripting
Hi all,
Let me first start out by saying I'm a perl newbie and hope somebody can help, for the life of me I can't figure out why my script will not find and download a remote file via FTPSSL. What it's supposed to do is find the latest file named... (4 Replies)
Discussion started by: Styles
4 Replies
5. Shell Programming and Scripting
Hey everyone,
I have a problem with a certain shellscript. I have a script like this:
#!/bin/sh
template=$1
for values in {60,150,240,330}\ {60,150,240,330}\ {60,150,240,330}\ {60,150,240,330}; do
set $values
X=$1; Y=$2; Z=$3; M=$4
mkdir "X$X-Y$Y-Z$Z-M$M"
cp... (2 Replies)
Discussion started by: mario8eren
2 Replies
6. Shell Programming and Scripting
What I'm trying to do is leave a tcpdump running all the time on a server, and at the end of every day kill it and start a new one. For some reason my boss doesn't want to set this up as a cron job, so I've come up with the following.:
#!/bin/bash
PCAPFILE=/tmp/mgmt.$(date... (8 Replies)
Discussion started by: DeCoTwc
8 Replies
7. UNIX for Beginners Questions & Answers
Hi,
We have created a script that's checks the latency of IIDR subscription by fetching details from a config file (that contains subscription details) and running the CHCCLP command. The out put is then concatenated in a csv file. Once all subscription details are saved the script send a mail... (7 Replies)
Discussion started by: ab095
7 Replies