#!/usr/bin/ksh93 ################################################################ #### #### Program: mapluns.sh #### #### Description: The purpose of this script is to map the #### disks from a VIO server to their respective virtual SCSI #### slot numbers, virtual adapters, and LDEV numbers. #### #### This script is intended to be run on a VIO server in the #### "oem_setup_env" environment. The output from this script #### is a table of information containing the name of the VIO #### server, hdisk name, virtual adapter name, virtual slot #### number, and the SAN LDEV ID. #### #### Author: Dana French #### (Copyright 2005) #### #### Date: 08/10/2005 #### ################################################################ IFS=$'\n' LSMAP=( $( /usr/ios/cli/ioscli lsmap -all ) ) HOSTID=$( hostname ) HDISK="" VHOST="" VSLOT="" LDEV="" print -u 2 "# hostname:hdisk:vadapter:vslot:ldev:" for MAPLN in "${LSMAP[@]//Backing device/BackingDevice}" do [[ "_${MAPLN}" != _@(vhost|BackingDevice)* ]] && continue if [[ "_${MAPLN}" = _vhost* ]] then VHOST=${MAPLN%%[$' \t']*} VHOST=${VHOST#*[$' \t']} VSLOT=${MAPLN##*-} VSLOT=${VSLOT%%[$' \t']*} continue fi HDISK=${MAPLN##*[$' \t']} TMPDISK="${HDISK}" if [[ "_${TMPDISK}" = _dlmfdrv* ]] then TMPDISK=$( /usr/DynamicLinkManager/bin/dlnkmgr view -drv | grep "${TMPDISK}" | awk '{ print $3 }' | head -1 ) fi LSCFG=( $( lscfg -vl ${TMPDISK} ) ) for LINE in "${LSCFG[@]}" do if [[ "_${LINE}" = *\(Z1\)* ]] then LDEV=${LINE#*\(Z1\)} LDEV=${LDEV//./} LDEV=${LDEV%%[$' \t']*} fi done print -u 2 "# ${HOSTID}:${HDISK}:${VHOST}:${VSLOT}:${LDEV}:" print "/usr/ios/cli/ioscli mkvdev -vdev ${HDISK} -vadapter ${VHOST} -dev v${HDISK}" # HDISK="" VHOST="" VSLOT="" LDEV="" HDISK="" LDEV="" done
This file last modified 02/04/09