This simple script gives you the list of FC HBA detected in system. It query the sysfs filesystem to get the available fibre channel HBA. Script works for most of the Linux flavors, as specially any of Redhat, SUSE, Fedora and Centos distributions.
This script will not alter any of system configuration rather it just query the sysfs filesystem. Copy the script to server and execute it. Output collected under file “/tmp/hba_list.txt”.
Note
This script will not list the HBA if there is any hardware or driver issue. In such case refer “dmesg“ to troubleshoot further.
#!/bin/bash # # Display available FC Ports and their WWPN echo "--------------------------------------------------" echo -e "\tCollecting the available HBA details. \n\tOutput stored as /tmp/hba_list.txt" echo "--------------------------------------------------" for hba in `ls -d /sys/class/fc_host/host*`;do FC_HOST=`basename $hba` PortID=`cat $hba/port_id` wwpn=`cat $hba/port_name` state=`cat $hba/port_state` speed=`cat $hba/speed` hba=`cat $hba/symbolic_name` cat << EOB >> /tmp/hba_list.txt FC-Host: $FC_HOST --------------------------------------------------------------------------- HBA WWPN : $wwpn PortId: $PortID HBA State: $state Speed : $speed EOB done
Here is the sample of HBA details which has been collected by above script.
#cat /tmp/hba_list.txt FC-Host: host1 --------------------------------------------------------------------------- HBA WWPN : 0x5001439994c99988 PortId: 0x100300 HBA State: Online Speed : 4 Gbit FC-Host: host2 --------------------------------------------------------------------------- HBA WWPN : 0x5001439994c9998a PortId: 0x0f0300 HBA State: Online Speed : 4 Gbit
Was it useful? Please post your comments.