Multipath Script for RHEL5/6

=========================================
#!/bin/bash
#
# Script is created by bibhuti2sol@gmail.com
# Send me mail in case of any modification of improvements I should do
#
TMP_DIR=”.tempdir”
TMP_FILE=”.hostfile”
TMP_FILE1=”.hostfile1″
rm -rf $TMP_DIR $TMP_FILE $TMP_FILE1 > /dev/null
mkdir $TMP_DIR
clear
for i in `ls /sys/class/fc_host/`
do
echo -e “Adapter \t:$i”
echo -e “HBA Model\t:`cat /sys/class/scsi_host/$i/model_name` `cat /sys/class/scsi_host/$i/model_desc`”
echo -e “WWPN\t\t:`cat /sys/class/fc_host/$i/node_name |cut -d ‘x’ -f2`”
echo -e “Port Status\t:`cat /sys/class/fc_host/$i/port_state`”
echo -e “Speed\t\t:`cat /sys/class/fc_host/$i/speed`”
echo -e “Driver\t\t:`cat /sys/class/scsi_host/$i/fw_version`”
echo -e “Firmware\t:`cat /sys/class/scsi_host/$i/driver_version`”
echo -e “\n”
done
echo -e “Checking multipath device redundancy..\n”
for k in `multipath -ll -v1`
do
multipath -ll $k >> $TMP_DIR/$k
done

for i in `ls /sys/class/fc_host/`
do
for j in `systool -v -c fc_transport |grep $i |cut -d ‘”‘ -f2`
do
ls -R $j |grep “block:” |cut -d ‘:’ -f2|while read line
do
echo -e “$i\t `egrep -l -w “$line” $TMP_DIR/* |cut -d ‘/’ -f2` ” >> $TMP_FILE
done
done
done
sort $TMP_FILE |uniq >> $TMP_FILE1
echo -e “Multipath\tPath from Adapaters”
echo -e “———\t——————-”
for path in `ls $TMP_DIR`
do
echo -e “$path\t\t`egrep -w “$path” $TMP_FILE1 |awk ‘{print $1}’|xargs`”
done
rm -rf $TMP_DIR $TMP_FILE $TMP_FILE1 > /dev/null
======================================

Leave a comment