Link to home
Start Free TrialLog in
Avatar of ibmsddk
ibmsddk

asked on

Script in AIX for rmt's

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


 
Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

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
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
Avatar of ibmsddk
ibmsddk

ASKER

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.

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.
Avatar of ibmsddk

ASKER

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 ,
ASKER CERTIFIED SOLUTION
Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ibmsddk

ASKER

i mean the medium changers properties
Avatar of ibmsddk

ASKER

problem solved