Sponsored Content
Top Forums Shell Programming and Scripting Need some help with this script -- extra eyes Post 302188094 by gzs553 on Tuesday 22nd of April 2008 03:30:27 PM
Old 04-22-2008
Still not functioning properly.

It seems as though my "EJECT_TO_CAP" routine will not read my input, but just continously loops with my $volume variable. Not sure where it is picking up the input from. I guess I've been working on this script too long. lol... Any other ideas!!Smilie



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()
{
cap=$1
echo "Ejecting to CAP 0,2,$cap"; 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
# /opt/OMIdtelm/bin/eject_vol -t 3600 -c 0,2,1 -l $EJECTED_TAPES | tee $EJECT_LOG;
echo "Ejecting Completed"
cat $EJECT40 >> TAPES_EJECTED.log
cat /dev/null >$EJECT40
}

#---------------- 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 TAPE CAP TO Eject to: Enter 1 for CAP1 or 2 for CAP2 (1,2)"
while true; do
read cap
case $cap in
1 | 2) EJECT ; break;;
*) echo "Invalid Selection";;
esac
done
}

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

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
 

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
echo(1B)					     SunOS/BSD Compatibility Package Commands						  echo(1B)

NAME
echo - echo arguments to standard output SYNOPSIS
/usr/ucb/echo [-n] [argument] DESCRIPTION
echo writes its arguments, separated by BLANKs and terminated by a NEWLINE, to the standard output. echo is useful for producing diagnostics in command files and for sending known data into a pipe, and for displaying the contents of envi- ronment variables. For example, you can use echo to determine how many subdirectories below the root directory (/) is your current directory, as follows: o echo your current-working-directory's full pathname o pipe the output through tr to translate the path's embedded slash-characters into space-characters o pipe that output through wc -w for a count of the names in your path. example% /usr/bin/echo "echo $PWD | tr '/' ' ' | wc -w" See tr(1) and wc(1) for their functionality. The shells csh(1), ksh(1), and sh(1), each have an echo built-in command, which, by default, will have precedence, and will be invoked if the user calls echo without a full pathname. /usr/ucb/echo and csh's echo() have an -n option, but do not understand back-slashed escape characters. sh's echo(), ksh's echo(), and /usr/bin/echo, on the other hand, understand the black-slashed escape characters, and ksh's echo() also understands a as the audible bell character; however, these commands do not have an -n option. OPTIONS
-n Do not add the NEWLINE to the output. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), echo(1), ksh(1), sh(1), tr(1), wc(1), attributes(5) NOTES
The -n option is a transition aid for BSD applications, and may not be supported in future releases. SunOS 5.10 3 Aug 1994 echo(1B)
All times are GMT -4. The time now is 03:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy