Sponsored Content
Top Forums Shell Programming and Scripting Need some help with this script -- extra eyes Post 302188441 by gzs553 on Wednesday 23rd of April 2008 01:22:24 PM
Old 04-23-2008
ERA,

Now my EOF counters are not working. Seems like I lose them in my EJECT routine.

Script:

#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()
{
echo "In EJECT ROUTINE $TAPE_CT"
TOT_TAPE_CT_EJECTED=`expr $TAPE_CT + $TOT_TAPE_CT_EJECTED`
TAPES_EJECTED=`wc -l < $EJECT40` ; echo "$TAPES_EJECTED in file"
echo "Ejecting $TAPE_CT tapes to CAP 0,2,$cap"

# /opt/OMIdtelm/bin/eject_vol -t 3600 -c 0,2,1 -l $EJECTED_TAPES | tee $EJECT_LOG;
echo "$TAPE_CT tapes ejected to CAP $cap Completed ..... Please remove tapes from cap"
cat $EJECT40 >> TAPES_EJECTED.log
cat /dev/null >$EJECT40
echo "Total tapes ejected - $TOT_TAPE_CT_EJECTED of $TOT_TAPES_TO_EJECT"
TAPE_CT=0
}

#---------------- SELECT CAP to EJECT ---------------------------
#

EJECT_TO_CAP()
{
#echo "EJECT_TO_CAP Routine _ List of tapes to be ejected to cap 0,2,1"; cat $EJECT40
echo "Select CAP 0,2,x Eject to: Enter 1 for CAP1 or 2 for CAP2 (1,2)"
while true; do
read cap < /dev/tty
echo $cap
case $cap in
1 | 2) EJECT $cap ; break;;
*) echo "Invalid Selection";;
esac
done
}

#------------ TAPE PROCESSING FUNCTION
# Reads file for number of tapes to eject, when reads 40 volumes, it ejects tapes and continue till EOF ------

TAPE_ROUTINE ()
{
while read volume
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 Tapes to be Ejected -- CAP is FULL";
EJECT_TO_CAP
fi
done < $EJECTED_TAPES
echo "EOF $TAPE_CT"
EJECT_TO_CAP
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=`wc -l < $EJECTED_TAPES`
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


output:

1
In EJECT ROUTINE 40
40 in file
Ejecting 40 tapes to CAP 0,2,1
40 tapes ejected to CAP 1 Completed ..... Please remove tapes from cap
Total tapes ejected - 160 of 176
In tape routine volume ejected IP0768 TAPE 1 of 176
In tape routine volume ejected IP0769 TAPE 2 of 176
In tape routine volume ejected IP0770 TAPE 3 of 176
In tape routine volume ejected IP0771 TAPE 4 of 176
In tape routine volume ejected IP0772 TAPE 5 of 176
In tape routine volume ejected IP0773 TAPE 6 of 176
In tape routine volume ejected IP0774 TAPE 7 of 176
In tape routine volume ejected IP0775 TAPE 8 of 176
In tape routine volume ejected IP0776 TAPE 9 of 176
In tape routine volume ejected IP0777 TAPE 10 of 176
In tape routine volume ejected IP0778 TAPE 11 of 176
In tape routine volume ejected TPA005 TAPE 12 of 176
In tape routine volume ejected TPA006 TAPE 13 of 176
In tape routine volume ejected TPA010 TAPE 14 of 176
In tape routine volume ejected TPA011 TAPE 15 of 176
In tape routine volume ejected TPA023 TAPE 16 of 176
EOF 0
Select CAP 0,2,x Eject to: Enter 1 for CAP1 or 2 for CAP2 (1,2)
1
1
In EJECT ROUTINE 0
16 in file
Ejecting 0 tapes to CAP 0,2,1
0 tapes ejected to CAP 1 Completed ..... Please remove tapes from cap
Total tapes ejected - 0 of 176
END of Tape Routine .. Total Tapes Ejected >>> 176 of 0




Quote:
Originally Posted by era
Actually it might be better to solve it in a slightly different way. See if you can extrapolate from this other thread: https://www.unix.com/shell-programmin...y-scripts.html

Mainly, if you (or your successor) ever want to run this from within another script, it sucks that it reads from the tty. (Those sleeps suck then, too.)
 

7 More Discussions You Might Find Interesting

1. What is on Your Mind?

use ears to protect eyes before the computer.

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

Another set of eyes

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

Extra output in the script

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

Broke Perl Script Second pair of eyes NET::FTPSSL

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

The same script with extra variables seems to fail

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

Would appreciate a quick second set of eyes on a script (regarding doing things in the background)

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

Script when scheduled in Crontab gives extra records in output

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
All times are GMT -4. The time now is 10:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy