script assistance with shift J


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script assistance with shift J
# 1  
Old 08-19-2009
script assistance with shift J

Hey all, I need some assistance. I'm writing a script to eject tapes from a tape library, but the library is not a queued system and can only eject 15 tapes at a time.

I added paste -d : -s so that it goes through full_tapes and puts each media_id on one line separated by the :.

Now I'm stuck on how to I separate each set of 15 into multiple lines, if I have over 15 tapes. Otherwise, this works great if I only have to eject 15 tapes.

Here is what I have so far.

Code:
#!/usr/bin/ksh

#################################
# DEFINE FILES & VARIABLES HERE #
#################################

TAPE="/usr/openv/netbackup/bin/lto-fullt.mail"
FULL_TAPES"/usr/openv/netbackup/bin/full_tapes"

#####################
# BEGINNING OF MAIN #
#####################

for i in "${TAPE}"
do
   cat $TAPE |awk '{ print $1 }' | paste -d : -s > full_tapes
done

for j in "${FULL_TAPES}"
do
   /usr/openv/volmgr/bin/vmchange -res -multi_eject -w -verbose -rn 0 -rt TLD -rh bkup2 ml $FULL_TAPES


if [ "j" -eq 0 ] ; then
            echo "$FULL_TAPES Ejected successfully "
        else
             echo "$FULL_TAPES Eject failed"
         fi
       else
            echo "$FULL_TAPES not in library "
     fi
  fi
done

The full_tapes media_id looks like.
Code:
L012345
L045583
L012314
L098008
L043243
L076865
L099002
L000883
L032329
L045768
L034567
L012908
L056742
L090723
L000012
L090972
L001221
L001102
L007881
L001229
L000912
L000898

After paste -d : -s
Code:
L012345:L045583:L012314:L098008:L043243:L076865:L099002:L000883:L032329:L045768:
L034567:L012908:L056742:L090723:L000012:L090972:L001221:L001102:L007881:L001229:
L000912:L003452:L001222:L000081:L000082:L000181:L000002:L000454:L000456:L000459:
L000239:L000231:L000991:L000993:L000349:L000003:L000023:L000087:L001220:L003344

# 2  
Old 08-19-2009
I'm surprised that code works at present, you've got three end ifs (fi), two elses, but only one if statement. All a bit weird. Is this the full script or just an excerpt?

If you just want to issue some command against each bunch of 15 tapes seperated by : characters, try this:
Code:
TAPE="/usr/openv/netbackup/bin/lto-fullt.mail"   # Taken from your script above
tapes=0
for $thistape in `awk '{ print $1 }' < $TAPE`   # Again from your script above
do
  if [ $tapes -eq 0 ]
  then
    tapelist=$thistape
  else
    tapelist="${tapelist}:${thistape}"
  fi
  if [ $tapes -ge 15 ]
  then
    your eject command on $tapelist
    tapes=0
  fi
done

Not tested of course.
# 3  
Old 08-19-2009
Quote:
Originally Posted by Smiling Dragon
I'm surprised that code works at present, you've got three end ifs (fi), two elses, but only one if statement. All a bit weird. Is this the full script or just an excerpt?

If you just want to issue some command against each bunch of 15 tapes seperated by : characters, try this:
Code:
TAPE="/usr/openv/netbackup/bin/lto-fullt.mail"   # Taken from your script above
tapes=0
for $thistape in `awk '{ print $1 }' < $TAPE`   # Again from your script above
do
  if [ $tapes -eq 0 ]
  then
    tapelist=$thistape
  else
    tapelist="${tapelist}:${thistape}"
  fi
  if [ $tapes -ge 15 ]
  then
    your eject command on $tapelist
    tapes=0
  fi
done

Not tested of course.
i may have forgotten to delete those extra ones in there, but yes this is the full script.

i have not test it out. i've been working on the other part to get the ":" added to my full_tapes file.

i was also going to ask, would using sort or asort work to separate the tapes into groups of 15?

---------- Post updated at 09:37 PM ---------- Previous update was at 09:32 PM ----------

thanks smiling dragon. i'll give that a try.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need assistance in ksh script

requirement : I need to read a text file and find out which particular line has highest charcters on it using the shell script. I tried & was able to find out only for one line. I could not able to find out for the entire the line. sed -n '10 p' ctstest.sh | wc -w Please guide me... (5 Replies)
Discussion started by: ramkumar15
5 Replies

2. Homework & Coursework Questions

Need help with a Perl Script using Pop, Shift, & Push

Hello everyone, I am new to Perl and I am having some issues getting a script to work. I have to create a script that uses an array of 52 cards, "shuffles" the cards (using loops with the pop, shift, and push commands), and prints out the top five. This is not a randomizing of the array just a... (2 Replies)
Discussion started by: Hax0rc1ph3r
2 Replies

3. UNIX for Dummies Questions & Answers

can someone explain shift command in script?

think using shift would help me finish my script but cant get it work without your help. would appreciate if you give me a example with shift & counter in the same script so I can later work on that to my one. Thanks and Good Luck! (1 Reply)
Discussion started by: me.
1 Replies

4. Shell Programming and Scripting

shell script: cannot shift error?

This is an assignment where we were supposed to create a script to get an orginal string and replace it with another. However when I run my script (change-lines), it says ./change-lines: cannot shift I do not where the problem is. help! #!/bin/sh # a shell function to print and error... (4 Replies)
Discussion started by: alis
4 Replies

5. Shell Programming and Scripting

Need assistance with a simple script

I have a simple script. Do you know what I got this error? ./total_memory.ksh: line 5: ' Thanks #! /bin/bash setmem=30177660 totalMemory= grep MemTotal /proc/meminfo | awk '{print $2}' if ; then echo "Total memory $totalMemory is less than :$setmem" exit 1 ... (3 Replies)
Discussion started by: Beginer0705
3 Replies

6. Shell Programming and Scripting

Shift report script

hey guys, so i'm running into a wall here with my script. i simply can't figure out a way to get it to work. so, maybe you guys can help me. i'm trying to created a report of server alerts based on the time worked. what i have so far is curling nagios pages, removing all the extra html tags and... (4 Replies)
Discussion started by: terrell
4 Replies

7. Shell Programming and Scripting

how to shift few words of filenames at a time using shell script

Hello everybody, I have some files in directory. I want to shift 3 characters of filenames to the right at a same time. for example, I have filenames like $ls -l 01_2000.G3.input.txt 02_2000.G3.input.txt ..., ..., 04_2010.G3.input.txt I want to change the filenames like... (3 Replies)
Discussion started by: yogeshkumkar
3 Replies

8. Shell Programming and Scripting

shell script assistance please

When I run this command (showstatus <username> <dbname>) in the prompt, the following will be displayed in the screen: 1. Show processes 2. Start process 3. Stop process 4. Go back to prompt Once i choose/type Option "1" (which is Show processes), it will display the list of processes... (5 Replies)
Discussion started by: xinoo
5 Replies

9. Shell Programming and Scripting

need assistance ----SH schell script

Hello All, I need to develop a script(SH]) to generate a comparison file between two files old and new file.The script takes in parameter the old file path and the new file path. And the script generates a file containing the comparison between the two files with this details: - Keys... (2 Replies)
Discussion started by: shahidbakshi
2 Replies

10. Shell Programming and Scripting

Need a little assistance with a shell script

I need to modify a script to send an attatched file. I have researched and read the faq's but have not found a solution for my script. Here is a copy of the code I am using: #!/bin/sh mysqldump --opt --skip-add-locks --user=****** --password=******* databasename | gzip >... (3 Replies)
Discussion started by: rickou812
3 Replies
Login or Register to Ask a Question