I put this function often in .profile from root, you can have a comma format using: pcmpathq -c
# List disks serial number
pcmpathq ()
{
verbose=$1
if [ "$verbose" != "-c" ]
then
printf "##################################################################################################################################\n"
printf "%-15s %-25s %-15s %-15s %-37s %-10s %-10s\n" '#'HDISK PVID VG MANUFACTURER STORAGE-DISK_SERIAL TYPE DISK_SZ
printf "##################################################################################################################################\n"
fi
for line in $(lspv -u | sed 's/\ /;/g')
do
typeset -Z4 diskid
hdisk=$(echo $line | sed 's/;/\ /g' | awk '{print $1}')
disksz=$(bootinfo -r $hdisk)
pvid=$(echo $line | sed 's/;/\ /g' | awk '{print $2}')
vg=$(echo $line | sed 's/;/\ /g' | awk '{print $3}')
diskfull=$(echo $line | cut -c80- | sed 's/;/\ /g' | rev | awk '{print $2,$3,$4,$5}' | rev | sed 's/\ //g')
endline=$(echo $diskfull | sed 's/[0-9]/\ /g' | rev | awk '{print $1}' | rev)
if [ $(echo $endline | grep vscsi > /dev/null; echo $?) -eq 0 ]
then
type=vscsi
if [ $(echo $diskfull | grep "NVDISK" > /dev/null; echo $?) -eq 0 ]
then
diskfull=$(echo $diskfull | cut -c6-51)
else
diskfull=$(echo $diskfull | cut -c9- | sed 's/fcp/\ /' | awk '{print $1}')
fi
else
if [ $(echo $endline) == "IBMsas" ]
then
type=sas
else
type=fcp
diskfull=$(echo $diskfull | cut -c5- | sed 's/fcp/\ /' | awk '{print $1}')
fi
fi
manufacturer=$(echo $diskfull | rev | sed 's/[0-9]/\ /g' | awk '{print $1}' | rev)
if [ "$manufacturer" == "HITACHI" ]
then
serial=$(echo $diskfull | cut -c1-8)
hexadiskid=$(echo $diskfull | cut -c9-12)
diskid=$(printf "%d\n" 0x$hexadiskid)
else
if [ "$manufacturer" == "IBM" ] # for DS8k
then
if [ $(echo $diskfull | rev | cut -c6-9 | rev) == "2145" ]
then
# SVC disk
typeset -Z2 diskid
serial=$(echo $diskfull | cut -c2-33)
diskid="NA"
else
# DS8000 disks
serial=$(echo $diskfull | cut -c1-7)
diskid=$(echo $diskfull | cut -c8-11)
fi
else
typeset -Z2 diskid
if [ "$manufacturer" == "DataCore" ]
then
serial=$(lscfg -vpl $hdisk | grep "Device Specific" | grep "(Z0)" | sed 's/\./\ /g' | rev | awk '{print $1}' | rev)
diskid="NA"
else
if [ "$manufacturer" == "NVDISK" ]
then
serial=$(echo $diskfull | cut -c1-32 | tr 'A-Z' 'a-z')
diskid=""
else
serial="NA"
diskid="NA"
fi
fi
fi
fi
if [ "$verbose" != "-c" ]
then
printf "%-15s %-25s %-15s %-15s %-37s %-10s %-10s\n" $hdisk $pvid $vg $manufacturer "$serial $diskid" $type $disksz
else
echo $hdisk";"$pvid";"$vg";"$manufacturer";"${serial}${diskid}";"$type";"$disksz
fi
done
}