Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Script in AIX for rmt's

Posted on 2010-09-08
8
Medium Priority
?
2,292 Views
Last Modified: 2013-11-17
Hi  

 I need a script in AIX which should show the rmt's ,serial number of tape,HBA attached. in following format.

rmt  from aix end | serial no of drive | HBA adapter

Ex:
rmt34567  | 0345678654 | fcs


 
0
Comment
Question by:ibmsddk
  • 4
  • 4
8 Comments
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 33630558
Hi,

#!/bin/ksh
lsdev |grep fscsi | while read FSCS rest
  do
    TAPES=$(lsdev -p $FSCS | grep rmt | grep -v ALT |cut -f1 -d" ")
      for TAPE in $TAPES
        do
          SERIAL=$(lscfg -vl $TAPE | grep Serial | awk -F"." '{printf "%d", $NF}')
          FCS=$(echo $FSCS | sed 's/fscsi/fcs/')
          echo $TAPE "|" $SERIAL "|" $FSCS "|" $FCS
        done
  done

Some remarks:

1) The script works on the protocol devices fscsix, not on the fibre channel adapters fcsx themselves,
because if there are multiple fcsx devices it's not quite simple to show the actual parent fcsx of a given fscsix.
But given the fact that for e.g. fscsi0 it's always fcs0, the script does a simple change to display the
fcs device additionally. Remove either $FSCS or $FCS from the "echo" line if you don't want to see both.

2) If you have multi-homed drives with "alt_pathing=yes" being set, there will be an alternate device ("ALT") for any multipathing-enabled primary device ("PRI"). Since I don't know if this is the case for you I excluded the ALT devices in the script (thus "grep -v ALT).


wmp
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 33632003
Just for fun - try this to get "the whole picture":

#!/bin/ksh
lsdev |grep fscsi | while read FSCS rest
  do
    lsdev -p $FSCS | grep rmt |while read TAPE filler LOC MODEL
        do
          SERIAL=$(lscfg -vl $TAPE | grep Serial | awk -F"." '{printf "%d", $NF}')
          ALT=$(echo $LOC | awk -F"-" '{print $4}')
          FCS=$(echo $FSCS | sed 's/fscsi/fcs/')
          echo $TAPE "|" $SERIAL ${ALT:-"   "} "|" $FSCS "|" $FCS "|" "$MODEL"
        done
  done |sort -k3,n
0
 

Author Comment

by:ibmsddk
ID: 33640158
Assuming that  i'm using 1 drive and connected to 3HBA so it produces 3 rmt's

in below format

rmtname|  serialno | fcs| statefrom os end
rmt12345 | 23455 |fcs1 |available or defined
rmt*|23455|fcs2|available
rmt*|23455|fcs1|available

so i can know all same tapes and logical rmt's belong to single drive and availability in os end.

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 68

Expert Comment

by:woolmilkporc
ID: 33640621
So where is the problem? Seems that you didn't even run my scripts!

My second version does not only give you the 'PRI' or 'ALT' flags following the serial, it's also sorted by this serial number, so you could easily see which drives are identical.

As a goodie the verbose device description is shown.

OK, you don't want to see the protocol device, no problem. Instead, you're requesting the 'Available' or 'Defined' states, which was not part of your original question.

Anyway -

#!/bin/ksh
echo "rmt  | Serial  A/P | HBA  | State"
echo "-------------------------------------"
lsdev |grep fscsi | while read FSCS rest
  do
    lsdev -p $FSCS | grep rmt |while read TAPE STATE LOC MODEL
        do
          SERIAL=$(lscfg -vl $TAPE | grep Serial | awk -F"." '{printf "%d", $NF}')
          ALT=$(echo $LOC | awk -F"-" '{print $4}')
          FCS=$(echo $FSCS | sed 's/fscsi/fcs/')
          echo $TAPE "|" $SERIAL ${ALT:-"   "} "|" $FCS "|" $STATE
        done
  done |sort -k3n,6


If you don't like the "PRI/ALT" stuff, remove the parts I marked in bold.
0
 

Author Comment

by:ibmsddk
ID: 33683356
hi

it works fine ,

rmt130801 | 7839298 PRI | fcs1 | Available
rmt230801 | 7839298 ALT | fcs2 | Available
rmt330801 | 7839298 ALT | fcs3 | Available
rmt430801 | 7839298 ALT | fcs5 | Available

thanks ..if i want WWN  how to add ,and also SMC needs to be displayed ,
0
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 2000 total points
ID: 33683550
Here is WWN -
#!/bin/ksh
echo "rmt  | Serial  A/P | WWN                | HBA  | State"
echo "-----+-------------+--------------------+------+----------"
lsdev |grep fscsi | while read FSCS rest
  do
    lsdev -p $FSCS | grep rmt |while read TAPE STATE LOC MODEL
        do
          SERIAL=$(lscfg -vl $TAPE | grep Serial | awk -F"." '{printf "%d", $NF}')
          WWN=$(lsattr -El $TAPE | grep node_name | awk '{print $2}')
          ALT=$(echo $LOC | awk -F"-" '{print $4}')
          FCS=$(echo $FSCS | sed 's/fscsi/fcs/')
          echo $TAPE "|" $SERIAL ${ALT:-"   "} "|" $WWN "|" $FCS "|" $STATE
        done
  done |sort -k3n,6
echo "-----+-------------+--------------------+------+----------"
But what do you mean with SMC?
0
 

Author Comment

by:ibmsddk
ID: 33698187
i mean the medium changers properties
0
 

Author Closing Comment

by:ibmsddk
ID: 33698220
problem solved
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
Introduction Regular patching is part of a system administrator's tasks. However, many patches require that the system be in single-user mode before they can be installed. A cluster patch in particular can take quite a while to apply if the machine…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Suggested Courses

580 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question