home *** CD-ROM | disk | FTP | other *** search
/ ftp.intel.com / 2015-02-03.ftp.intel.com.tar / ftp.intel.com / Pub / sites / FPD / ibsupport / scripts / ibsupport_info_40501.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2013-04-14  |  80KB  |  2,267 lines

  1. #!/bin/bash
  2. #####################################################################
  3. # This script attempts to gather troubleshooting information on 
  4. # a variety of Linux hosts.  Files that exist in one distribution of
  5. # Linux may not exist in another distribution (SuSE vs Red Hat).
  6. # Please ignore any errors reported about files not existing.
  7. #
  8. # Note: There may appear to be some inconsistencies where some
  9. # commands are tested by "which" and others are not.  The "which" 
  10. # tests will not generate outputs if the commands do not exist and
  11. # eventually determine which outputs get posted to the dashboard.
  12. #
  13. # --Doug Gunderson
  14. # --Intel Infiniband Technical Support
  15. # --Fabric Products Division
  16. # --TCG / DCSG / Intel Corporation
  17. #
  18. #####################################################################
  19. ScriptVER="4.05.01"
  20. #
  21. #####################################################################
  22.  
  23. # So users can run the script using su or sudo
  24. export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
  25.  
  26. ####################################################################
  27. # Test to see if run with with root permissions
  28. #####################################################################
  29. if [ `id -u` -ne 0 ]
  30. then
  31.    /bin/echo "This script must be run with root permissions.  Please rerun as root or with sudo."
  32.    exit
  33. fi
  34.  
  35. ####################################################################
  36. # Check to see if this is VMware 
  37. #####################################################################
  38. if [ -f /etc/vmware-release ]
  39. then
  40.    /bin/echo "This script is intended for RHEL or SLES distributions."
  41.    /bin/echo "It will not run successfully on VMware."
  42.    exit
  43. fi
  44.  
  45. ####################################################################
  46. # logger entry to identify start of script
  47. #####################################################################
  48. which logger > /dev/null 2>&1
  49. if [ $? -eq 0 ]
  50. then
  51.    logger "ibsupport_info.sh starting with PID $$"
  52. fi
  53.  
  54. #####################################################################
  55. # Create temporary directory using HOSTNAME-DateTime to store output
  56. #####################################################################
  57. CurDate=`/bin/date +%Y%m%d%H%M%S`
  58. HostName=`uname -n`
  59. LOGNAME="$HostName-$CurDate"
  60. LOGDIR="/tmp/$LOGNAME"
  61. /bin/echo "Log data will be stored in $LOGDIR"
  62. /bin/echo "Output results will be tar-zipped to $LOGDIR.tgz"
  63. /bin/echo
  64. mkdir $LOGDIR
  65. mkdir $LOGDIR/script
  66. cd $LOGDIR
  67. touch $LOGDIR/script/ScriptVersion.$ScriptVER
  68. mkdir $LOGDIR/OS
  69.  
  70. #####################################################################
  71. # Gather OS info
  72. #####################################################################
  73. /bin/echo -n "Gathering OS info: "
  74. OS_FILES=`ls /etc/*-release /etc/*_version 2>> $LOGDIR/script/misc_err.log`
  75. for file in $OS_FILES
  76. do
  77.    if [ -f $file ]
  78.    then
  79.       cp -p $file $LOGDIR/OS
  80.    fi
  81. done
  82.  
  83. # Files useful if we need to duplicate the host install
  84. if [ -f /root/anaconda-ks.cfg ]
  85. then
  86.    cp /root/anaconda-ks.cfg $LOGDIR/OS
  87. fi
  88. if [ -f /root/autoinst.xml ]
  89. then
  90.    cp /root/autoinst.xml $LOGDIR/OS
  91. fi
  92.  
  93. rpm -qa  > $LOGDIR/OS/rpm_list.out
  94. rpm --queryformat '[%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n]' -qa > /$LOGDIR/OS/rpm_detailed.out
  95. uname -a > $LOGDIR/OS/uname
  96.  
  97. /bin/echo "... done"
  98.  
  99. #####################################################################
  100. # Determine what hardware installed for gathering additional data
  101. #####################################################################
  102. /bin/echo -n "Gathering hardware info: "
  103. mkdir $LOGDIR/misc
  104. lspci -v                > $LOGDIR/misc/lspci.out 2>&1
  105. # More details on Intel, QLogic, Netxen, Mellanox hardware
  106. lspci -vvvxxx -d 1077:  > $LOGDIR/misc/lspci_detailed.out 2>&1
  107. lspci -vvvxxx -d 4040: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  108. lspci -vvvxxx -d 1fc1: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  109. lspci -vvvxxx -d 15b3: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  110.  
  111. FCINSTALLED=0
  112. ISCSIINSTALLED=0
  113. ETHERINSTALLED=0
  114. IBINSTALLED=0
  115. IBAINSTALLED=0
  116. MLXINSTALLED=0
  117. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Fibre Channel:"`
  118. if [ -n "$TESTHBA" ]
  119. then
  120.    FCINSTALLED=1
  121. fi
  122. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Network controller:"`
  123. if [ -n "$TESTHBA" ]
  124. then
  125.    ISCSIINSTALLED=1
  126. fi
  127. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  128. if [ -n "$TESTHBA" ]
  129. then
  130.    ETHERINSTALLED=1
  131. fi
  132. TESTHBA=`grep NetXen $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  133. if [ -n "$TESTHBA" ]
  134. then
  135.    ETHERINSTALLED=1
  136. fi
  137. # QLE8042 uses Intel NIC - report only if FC Installed
  138. TESTHBA=`grep "Intel Corporation 82598" $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  139. if [ -n "$TESTHBA" -a $FCINSTALLED -eq 1 ]
  140. then
  141.    ETHERINSTALLED=1
  142. fi
  143. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "InfiniBand:"`
  144. if [ -n "$TESTHBA" ]
  145. then
  146.    IBINSTALLED=1
  147. fi
  148. TESTHBA=`grep Mellanox $LOGDIR/misc/lspci.out|egrep "InfiniBand:|Network controller:"`
  149. if [ -n "$TESTHBA" ]
  150. then
  151.    IBINSTALLED=1
  152.    MLXINSTALLED=1
  153. fi
  154.  
  155. which iba_capture > /dev/null 2>&1
  156. if [ $? -eq 0 ]
  157. then
  158.    IBAINSTALLED=1
  159. fi
  160. /bin/echo "... done"
  161.  
  162. #####################################################################
  163. # Gather misc info
  164. #####################################################################
  165. /bin/echo -n "Gathering miscellaneous system info: "
  166. uptime                 > $LOGDIR/misc/uptime.out 2>&1
  167. dmidecode              >  $LOGDIR/misc/dmidecode.out 2>&1
  168. fdisk -l               >  $LOGDIR/misc/fdisk.out 2>&1
  169. ps -ewf                >  $LOGDIR/misc/ps.out
  170. top -bH -n 1           >  $LOGDIR/misc/top.out 2>&1
  171.  
  172. ls -lF /usr/bin/*gcc*  >  $LOGDIR/misc/gcc.out 2>&1
  173. /bin/echo "========"   >> $LOGDIR/misc/gcc.out
  174. gcc --version          >> $LOGDIR/misc/gcc.out 2>&1
  175.  
  176. ldconfig -p            >  $LOGDIR/misc/ldconfig.out 2>&1
  177. who -r                 >  $LOGDIR/misc/who_r.out 2>&1
  178. runlevel               >  $LOGDIR/misc/runlevel.out 2>&1
  179. env                    >  $LOGDIR/misc/env.out 2>&1
  180. chkconfig --list       >  $LOGDIR/misc/chkconfig.out 2>&1
  181. ls -alRF /usr/lib/     >  $LOGDIR/misc/ls_usrlib.out
  182. if [ -d /usr/lib64 ]
  183. then
  184.    ls -alRF /usr/lib64/>  $LOGDIR/misc/ls_usrlib64.out
  185. fi
  186. which lsscsi > /dev/null 2>&1
  187. if [ $? -eq 0 ]
  188. then
  189.    lsscsi              >  $LOGDIR/misc/lsscsi.out 2>&1
  190.    lsscsi --verbose    >  $LOGDIR/misc/lsscsi_verbose.out 2>&1
  191. fi
  192. sysctl -a              >  $LOGDIR/misc/sysctl.out 2>&1
  193. # DG: Problems on RHEL 6 ???
  194. #lsof                  >  $LOGDIR/misc/lsof.out 2>&1
  195. vmstat -a              >  $LOGDIR/misc/vmstat.out 2>&1
  196. free                   >  $LOGDIR/misc/free.out 2>&1
  197. ulimit -a              >  $LOGDIR/misc/ulimit.out 2>&1
  198.  
  199. touch $LOGDIR/misc/numa_info.out
  200. echo "##################### numactl --show #####################" >> $LOGDIR/misc/numa_info.out
  201. numactl --show >> $LOGDIR/misc/numa_info.out 2>&1
  202. echo "##################### numactl --hardware #####################" >> $LOGDIR/misc/numa_info.out 2>&1
  203. numactl --hardware >> $LOGDIR/misc/numa_info.out 2>&1
  204. echo "##################### numastat #####################" >> $LOGDIR/misc/numa_info.out 2>&1
  205. numastat >> $LOGDIR/misc/numa_info.out 2>&1
  206.  
  207. /bin/echo "... done"
  208.  
  209. #####################################################################
  210. # Gather /etc data
  211. #####################################################################
  212. /bin/echo -n "Gathering /etc files: "
  213. mkdir $LOGDIR/etc
  214. mkdir $LOGDIR/etc/sysconfig
  215. ETC_FILES="/etc/modules.* \
  216. /etc/modprobe.* \
  217. /etc/qla*.conf \
  218. /etc/hba.conf \
  219. /etc/sysconfig/kernel \
  220. /etc/sysconfig/hwconf \
  221. /etc/sysctl.conf \
  222. /etc/mtab \
  223. /etc/fstab"
  224.  
  225. for file in $ETC_FILES
  226. do
  227.    if [ -f $file ]
  228.    then
  229.       cp -p $file $LOGDIR/$file
  230.    fi
  231. done
  232.  
  233. if [ -d /etc/modprobe.d ]
  234. then
  235.    ls -alRF /etc/modprobe.d > $LOGDIR/etc/ls_etc_modprobed.out
  236.    mkdir $LOGDIR/etc/modprobe.d
  237.    MODPROBE_FILES="/etc/modprobe.d/ib_qib.conf \
  238.    /etc/modprobe.d/ib_ipoib.conf \
  239.    /etc/modprobe.d/scsi_mod.conf \
  240.    /etc/modprobe.d/qla2xxx.conf \
  241.    /etc/modprobe.d/qla3xxx.conf \
  242.    /etc/modprobe.d/qla4xxx.conf \
  243.    /etc/modprobe.d/netxen_nic.conf \
  244.    /etc/modprobe.d/nx_nic.conf \
  245.    /etc/modprobe.d/qlge.conf \
  246.    /etc/modprobe.d/blacklist \
  247.    /etc/modprobe.d/blacklist.conf"
  248.    for file in $MODPROBE_FILES
  249.    do
  250.       if [ -f $file ]
  251.       then
  252.          cp -p $file $LOGDIR/$file
  253.       fi
  254.    done
  255.  
  256. fi
  257.  
  258. ls -aldF /etc/rc*    > $LOGDIR/etc/ls_etcrcd.out
  259. ls -alRF /etc/rc.d/ >> $LOGDIR/etc/ls_etcrcd.out
  260.  
  261. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  262. then
  263.    echo -n "... additional IB info ... "
  264.    ETC_FILES="/etc/sysconfig/ics_inic.cfg* \
  265.    /etc/sysconfig/ics_srp.cfg* \
  266.    /etc/sysconfig/ipoib.cfg* \
  267.    /etc/sysconfig/infiniband \
  268.    /etc/sysconfig/boot \
  269.    /etc/sysconfig/firstboot \
  270.    /etc/sysconfig/*config \
  271.    /etc/sysconfig/qlogic_fm.xml \
  272.    /etc/sysconfig/ifs_fm.xml \
  273.    /etc/sysconfig/opensm \
  274.    /etc/dat.conf \
  275.    /etc/tmi.conf \
  276.    /etc/hosts"
  277.    for file in $ETC_FILES
  278.    do
  279.       if [ -f $file ]
  280.       then
  281.          cp -p $file $LOGDIR/$file
  282.       fi
  283.    done
  284.    if [ -d /etc/sysconfig/network ]
  285.    then
  286.       mkdir $LOGDIR/etc/sysconfig/network
  287.       cp -p /etc/sysconfig/network/ifcfg* $LOGDIR/etc/sysconfig/network
  288.    fi
  289.    if [ -d /etc/sysconfig/network-scripts ]
  290.    then
  291.       mkdir $LOGDIR/etc/sysconfig/network-scripts
  292.       cp -p /etc/sysconfig/network-scripts/ifcfg* $LOGDIR/etc/sysconfig/network-scripts
  293.    fi
  294.    if [ -d /etc/infiniband ]
  295.    then
  296.       mkdir $LOGDIR/etc/infiniband
  297.       cp -p /etc/infiniband/* $LOGDIR/etc/infiniband
  298.    fi
  299.    if [ -d /etc/ofed ]
  300.    then
  301.       mkdir $LOGDIR/etc/ofed
  302.       cp -pR /etc/ofed/* $LOGDIR/etc/ofed
  303.    fi
  304.    # RHEL 6 "ofed stack"
  305.    if [ -d /etc/rdma ]
  306.    then
  307.       mkdir $LOGDIR/etc/rdma
  308.       cp -pR /etc/rdma/* $LOGDIR/etc/rdma
  309.    fi
  310.    # iba_capture also copies files from /etc/sysconfig/iba (but that would be missing if no Intel IB stack)
  311.    #             and /etc/security (not sure why THAT directory)
  312.    # Leaving them both out for now.
  313. fi
  314.  
  315. /bin/echo "... done"
  316.  
  317. #####################################################################
  318. # Gather /sys data
  319. #####################################################################
  320. if [ -d /sys ]
  321. then
  322.    /bin/echo -n "Gathering /sys files: "
  323.    ls -alRF /sys > $LOGDIR/OS/ls_sys.out
  324.    mkdir -p $LOGDIR/sys/class
  325.    mkdir $LOGDIR/sys/class/scsi_host
  326.    mkdir $LOGDIR/sys/class/fc_host
  327.    mkdir $LOGDIR/sys/class/iscsi_host
  328.    mkdir $LOGDIR/sys/class/net
  329.    cp -pR /sys/class/scsi_host/*/      $LOGDIR/sys/class/scsi_host      2>  $LOGDIR/sys/copy_err.log
  330.    cp -pR /sys/class/fc_host/*/        $LOGDIR/sys/class/fc_host        2>> $LOGDIR/sys/copy_err.log
  331.    cp -pR /sys/class/iscsi_host/*/     $LOGDIR/sys/class/iscsi_host     2>> $LOGDIR/sys/copy_err.log
  332.    cp -pR /sys/class/net/*/            $LOGDIR/sys/class/net            2>> $LOGDIR/sys/copy_err.log
  333.  
  334.    mkdir -p $LOGDIR/sys/module
  335.    cp -pR /sys/module/scsi*            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  336.    cp -pR /sys/module/qis*             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  337.    cp -pR /sys/module/qla*             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  338.    cp -pR /sys/module/qlge             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  339.    cp -pR /sys/module/qlcnic           $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  340.    cp -pR /sys/module/ixgbe            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  341.    cp -pR /sys/module/nx_nic           $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  342.    cp -pR /sys/module/netxen_nic       $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  343.    cp -pR /sys/module/8021q            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  344.    cp -pR /sys/module/bonding          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  345.  
  346.    if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  347.    then
  348.       IBDIRS=`ls -d /sys/class/*infiniband* 2>> $LOGDIR/script/misc_err.log`
  349.       if [ -n "$IBDIRS" ]
  350.       then
  351.          for DIR in $IBDIRS
  352.          do
  353.             mkdir $LOGDIR/$DIR
  354.             cp -pR $DIR/*/  $LOGDIR/$DIR  2>> $LOGDIR/sys/copy_err.log
  355.          done
  356.       fi
  357.       # iba_capture does the following, but leaving it out for now
  358.       #mkdir $LOGDIR/sys/class/scsi_device
  359.       #cp -pR /sys/class/scsi_device/*/ $LOGDIR/sys/class/scsi_device    2>  $LOGDIR/sys/copy_err.log
  360.  
  361.       cp -pR /sys/module/ib_*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  362.       cp -pR /sys/module/iw_*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  363.       cp -pR /sys/module/ipoib*        $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  364.       cp -pR /sys/module/mlx*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  365.       cp -pR /sys/module/rdma*         $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  366.    fi
  367.  
  368.    /bin/echo "... done"
  369. fi
  370.  
  371. #####################################################################
  372. # Gather /proc data
  373. #####################################################################
  374. /bin/echo -n "Gathering /proc files: "
  375. mkdir $LOGDIR/proc
  376. PROC_FILES="/proc/modules \
  377. /proc/pci \
  378. /proc/interrupts \
  379. /proc/cmdline \
  380. /proc/buddyinfo \
  381. /proc/ksyms \
  382. /proc/cpuinfo \
  383. /proc/partitions \
  384. /proc/iomem \
  385. /proc/meminfo \
  386. /proc/mtrr \
  387. /proc/devices \
  388. /proc/filesystems \
  389. /proc/ioports \
  390. /proc/version \
  391. /proc/uptime \
  392. /proc/iba \
  393. /proc/slabinfo"
  394.  
  395. for file in $PROC_FILES
  396. do
  397.    if [ -f $file ]
  398.    then
  399.       cp -p $file $LOGDIR/$file
  400.    fi
  401. done
  402.  
  403. # Make sure /proc/scsi directory exists before gathering data
  404. if [ -d /proc/scsi ]
  405. then
  406.    cd $LOGDIR/proc
  407.    cp -pR /proc/scsi $LOGDIR/proc
  408.    cd $LOGDIR
  409. fi
  410.  
  411. # Gather power management info - performance issues
  412. if [ -d /proc/acpi/processor ]
  413. then
  414.    mkdir -p $LOGDIR/proc/acpi/processor
  415.    cp -pR /proc/acpi/processor/* $LOGDIR/proc/acpi/processor
  416. fi
  417.  
  418. # Gather network info for IPoIB, FCoE and Netxen
  419. if [ $ETHERINSTALLED -eq 1 -o $IBINSTALLED -eq 1 ]
  420. then
  421.    mkdir $LOGDIR/proc/net
  422.    # Make sure /proc/net/nx_nic directory exists before gathering data
  423.    if [ -d /proc/net/nx_nic ]
  424.    then
  425.       cp -pR /proc/net/nx_nic $LOGDIR/proc/net
  426.    fi
  427.    # Make sure /proc/net/bonding directory exists before gathering data
  428.    if [ -d /proc/net/bonding ]
  429.    then
  430.       cp -pR /proc/net/bonding $LOGDIR/proc/net
  431.    fi
  432.    # Make sure /proc/net/vlan directory exists before gathering data
  433.    if [ -d /proc/net/vlan ]
  434.    then
  435.       cp -pR /proc/net/vlan $LOGDIR/proc/net
  436.    fi
  437.    # Other proc/net files
  438.    PROC_FILES="/proc/net/arp \
  439.    /proc/net/dev \
  440.    /proc/net/dev_mcast \
  441.    /proc/net/route \
  442.    /proc/net/rt_cache"
  443.    for file in $PROC_FILES
  444.    do
  445.       if [ -f $file ]
  446.       then
  447.          cp -p $file $LOGDIR/$file
  448.       fi
  449.    done
  450. fi
  451.  
  452. # proc/driver files (mostly IB related)
  453. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  454. then
  455.    mkdir $LOGDIR/proc/driver
  456.    PROC_FILES="/proc/driver/ics_dsc \
  457.    /proc/driver/dev \
  458.    /proc/driver/ics_inic \
  459.    /proc/driver/ics_srp \
  460.    /proc/driver/ipoib \
  461.    /proc/driver/sdp \
  462.    /proc/driver/ics_offload \
  463.    /proc/driver/ics_sdp \
  464.    /proc/driver/rds"
  465.    for file in $PROC_FILES
  466.    do
  467.       if [ -f $file ]
  468.       then
  469.          cp -p $file $LOGDIR/$file
  470.       fi
  471.    done
  472. fi
  473. /bin/echo "... done"
  474.  
  475. #####################################################################
  476. # Gather module info
  477. #####################################################################
  478. /bin/echo -n "Gathering module information: "
  479. mkdir $LOGDIR/modules
  480. KERN_VER=`uname -r`
  481. MAJ_VER=`/bin/echo $KERN_VER | head -c3`
  482. if [ $MAJ_VER = "2.4" ]
  483. then
  484.    EXT=".o"
  485. fi
  486. if [ $MAJ_VER = "2.6" ]
  487. then
  488.    EXT=".ko"
  489. fi
  490.  
  491. find /lib/modules/$KERN_VER/ -name qla\*$EXT -print \
  492.   -exec modinfo {} \; -exec /bin/echo \; > $LOGDIR/modules/modinfo.out 2>&1
  493.  
  494. find /lib/modules/$KERN_VER/ -name qisioctl\*$EXT -print \
  495.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  496. find /lib/modules/$KERN_VER/ -name qioctlmod\*$EXT -print \
  497.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  498. find /lib/modules/$KERN_VER/ -name netxen\*$EXT -print \
  499.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  500. find /lib/modules/$KERN_VER/ -name nx_\*$EXT -print \
  501.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  502. find /lib/modules/$KERN_VER/ -name qlge\*$EXT -print \
  503.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  504. find /lib/modules/$KERN_VER/ -name qlcnic\*$EXT -print \
  505.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  506.  
  507. # Gather qisioctl and qioctlmod info (if installed)
  508. modinfo qisioctl  >> $LOGDIR/modules/qisioctl.out  2>> $LOGDIR/script/misc_err.log
  509. modinfo qioctlmod >> $LOGDIR/modules/qioctlmod.out 2>> $LOGDIR/script/misc_err.log
  510.  
  511.  
  512. ls -alRF /lib/modules/ > $LOGDIR/modules/ls_libmodules.out
  513.  
  514. lsmod                  > $LOGDIR/modules/lsmod.out 2>&1
  515.  
  516. #if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  517. if [ $IBINSTALLED -eq 1 ]
  518. then
  519.    touch $LOGDIR/modules/ibmodpaths.out $LOGDIR/modules/ibmodinfo.out
  520.    for mod in ib_ipath ib_qib ipath_core ib_core ib_ipoib ib_sa ib_umad ib_mad ib_uverbs mlx4_ib ib_mthca kcopy
  521.    do 
  522.       modinfo -F filename $mod >> $LOGDIR/modules/ibmodpaths.out 2>&1
  523.       modinfo $mod             >> $LOGDIR/modules/ibmodinfo.out 2>&1
  524.       /bin/echo                >> $LOGDIR/modules/ibmodinfo.out 2>&1
  525.    done
  526.    depmod -ae > $LOGDIR/modules/depmod.out 2>&1
  527.    sort $LOGDIR/modules/lsmod.out | egrep -i "ipath_|infinipath|_ipath|ib_qib" > $LOGDIR/modules/ipath_module_list.out 2>&1
  528.    sort $LOGDIR/modules/lsmod.out | egrep -i "ib_qib|ipath_|infinipath|^ib_|[ ,]ib_|rdma_|_vnic|rds|findex" > $LOGDIR/modules/infiniband_modules.out 2>&1
  529. fi
  530.  
  531. /bin/echo "... done"
  532.  
  533. #####################################################################
  534. # Gather ethernet info
  535. #####################################################################
  536. /bin/echo -n "Gathering ethernet info: "
  537. mkdir $LOGDIR/network
  538. iptables --list > $LOGDIR/network/iptables.out 2>&1
  539. ifconfig -a     > $LOGDIR/network/ifconfig.out 2>&1
  540. ip addr show    > $LOGDIR/network/ipaddrshow.out 2>&1
  541. ip -s link show > $LOGDIR/network/iplinkshow.out 2>&1
  542. netstat -rn     > $LOGDIR/network/netstat.out
  543. which ethtool > /dev/null 2>&1
  544. if [ $? -eq 0 ]
  545. then
  546.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  547.    if [ $IBINSTALLED -eq 1 ]
  548.    then
  549.       IB_IF="ipoib"
  550.    else
  551.       IB_IF="ZILCH"
  552.    fi
  553.    for file in $ETHDEVS
  554.    do
  555.       DRIVER=`ethtool -i $file 2>> $LOGDIR/script/misc_err.log | egrep "nx_nic|netxen_nic|qla|ixgbe|qlge|qlcnic|$IB_IF"`
  556.       if [ $? -eq 0 ]
  557.       then
  558.          ethtool -i $file > $LOGDIR/network/ethtool-i.$file 2>&1
  559.          ethtool -k $file > $LOGDIR/network/ethtool-k.$file 2>&1
  560.          ethtool    $file > $LOGDIR/network/ethtool.$file 2>&1
  561.          ifconfig   $file > $LOGDIR/network/ifconfig.$file 2>&1
  562.       fi
  563.    done
  564. fi
  565.  
  566. /bin/echo "... done"
  567.  
  568. #####################################################################
  569. # Gather SANsurfer and driver source info
  570. #####################################################################
  571. /bin/echo -n "Gathering FC/iSCSI tools and driver source info: "
  572. mkdir $LOGDIR/Mgmt_tools
  573.  
  574. if [ -d /opt/QLogic* ]
  575. then
  576.    ls -alRF /opt/QLogic* > $LOGDIR/Mgmt_tools/ls_optQLogic.out
  577.  
  578. #   if [ -d /opt/QLogic_Corporation/FW_Dumps ]
  579. #   then
  580. #      mkdir $LOGDIR/Mgmt_tools/firmwaredumps
  581. #      cp /opt/QLogic_Corporation/FW_Dumps/* $LOGDIR/Mgmt_tools/firmwaredumps 2>> $LOGDIR/script/misc_err.log
  582. #   fi
  583.  
  584.    SS_LOC="/opt/QLogic_Corporation/SANsurfer/qlogic.jar"
  585.    SS_CLASS="com/qlogic/qms/hba/Res.class"
  586.    ISS_LOC="/opt/QLogic_Corporation/SANsurfer/skins/power/iscsi_skin.properties"
  587.    if [ -f $ISS_LOC ]
  588.    then
  589.       ISSNAME=`grep iscsi.main.application.name $ISS_LOC |cut -d " " -f3-6`
  590.       ISSVER=`grep iscsi.main.application.version $ISS_LOC |cut -d " " -f3`
  591.       /bin/echo "$ISSNAME      Version $ISSVER" > $LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  592.    else
  593.       /bin/echo "iSCSI Management software not found or not installed" > $LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  594.    fi
  595.    if [ -x /usr/local/bin/iqlremote ]
  596.    then
  597.       IQLREMOTE=`/usr/local/bin/iqlremote -v|grep -m1 Version`
  598.       /bin/echo "SANsurfer iSCSI Remote Agent $IQLREMOTE" >>$LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  599.    else
  600.       /bin/echo "iSCSI Remote Agent not found or not installed" >>$LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  601.    fi
  602.  
  603.    if [ -f $SS_LOC ]
  604.    then
  605.       SSVER=`unzip -p $SS_LOC $SS_CLASS | strings | grep Build`
  606.       /bin/echo "SANsurfer FC Manager         Version $SSVER" > $LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  607.    else
  608.       /bin/echo "FC Management software not found or not installed" > $LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  609.    fi
  610.    if [ -x /usr/local/bin/qlremote ]
  611.    then
  612.       QLREMOTE=`/usr/local/bin/qlremote -v|grep -m1 Version`
  613.       /bin/echo "SANsurfer FC Remote Agent    $QLREMOTE" >>$LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  614.    else
  615.       /bin/echo "FC Remote Agent not found" >>$LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  616.    fi
  617. else
  618.    /bin/echo "iSCSI Manager not found or not installed" > $LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  619.    /bin/echo "iSCSI Remote Agent not found or not installed" >>$LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt
  620.    /bin/echo "FC Manager not found or not installed" > $LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  621.    /bin/echo "FC Remote Agent not found or not installed" >>$LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt
  622. fi
  623.  
  624. touch $LOGDIR/Mgmt_tools/api_installed.txt
  625. APIFILES="/usr/lib/libqlsdm.so /usr/lib64/libqlsdm.so"
  626. for file in $APIFILES
  627. do
  628.    if [ -f $file ]
  629.    then
  630.       APIVER=`strings $file | grep "library version"`
  631.    else
  632.       APIVER="Not Installed"
  633.    fi
  634.    /bin/echo "API $file:   $APIVER" >> $LOGDIR/Mgmt_tools/api_installed.txt
  635. done
  636.  
  637. ls -alRF /usr/local/bin > $LOGDIR/Mgmt_tools/ls_usrlocalbin.out
  638.  
  639. if [ -d /usr/src ]
  640. then
  641.    ls -alRF /usr/src/ > $LOGDIR/Mgmt_tools/ls_usrsrc.out
  642. fi
  643.  
  644. #if [ -d /usr/src/qlogic ]
  645. #then
  646. #   cd /usr/src/qlogic
  647. #   tar cf $LOGDIR/Mgmt_tools/driver_logs.tar `find . -name \*.log -print`
  648. #   cd $LOGDIR
  649. #fi
  650.  
  651. /bin/echo "... done"
  652.  
  653. #####################################################################
  654. # Gather System Log info
  655. #####################################################################
  656. /bin/echo -n "Gathering syslog info: "
  657. mkdir $LOGDIR/logs
  658. LOG_FILES="/var/log/localmessages* \
  659. /var/log/warn* \
  660. /var/log/dmesg* \
  661. /var/log/boot*"
  662.  
  663. if [ $IBINSTALLED -eq 0 -o $IBAINSTALLED -eq 0 ]
  664. then
  665.    LOG_FILES="$LOG_FILES /var/log/messages*"
  666. fi
  667. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  668. then
  669.    LOG_FILES="$LOG_FILES \
  670.    /var/log/ics_* \
  671.    /var/log/iba* \
  672.    /var/log/ipath* \
  673.    /var/log/ksyms.* \
  674.    /var/log/opensm*"
  675. fi
  676.  
  677. for file in $LOG_FILES
  678. do
  679.    if [ -f $file ]
  680.    then
  681.       cp -p $file $LOGDIR/logs 2>> $LOGDIR/script/misc_err.log
  682.    fi
  683. done
  684.  
  685. dmesg > $LOGDIR/logs/dmesg.out
  686. ls -alRF /var/crash > $LOGDIR/OS/ls_varcrash.out 2>> $LOGDIR/script/misc_err.log
  687. /bin/echo "... done"
  688.  
  689. #####################################################################
  690. # Gather boot info
  691. #####################################################################
  692. /bin/echo -n "Gathering boot info: "
  693. mkdir $LOGDIR/boot
  694. BOOT_FILES="/boot/grub/grub.conf \
  695. /boot/grub/menu.lst \
  696. /boot/efi/efi/SuSE/elilo.conf \
  697. /boot/efi/efi/redhat/elilo.conf \
  698. /etc/lilo.conf \
  699. /etc/elilo.conf"
  700.  
  701. for file in $BOOT_FILES
  702. do
  703.    if [ -f $file ]
  704.    then
  705.       cp -p $file $LOGDIR/boot
  706.    fi
  707. done
  708.  
  709. if [ -f /etc/grub.conf ]
  710. then
  711.    cp -p /etc/grub.conf $LOGDIR/boot/etc_grub.conf
  712. fi
  713.  
  714. ls -alRF /boot > $LOGDIR/boot/ls_boot.out
  715. /bin/echo "... done"
  716.  
  717. #####################################################################
  718. # Gather FC CLI info
  719. #####################################################################
  720. /bin/echo -n "Searching for FC CLI tools ... "
  721. if [ -x /opt/QLogic_Corporation/SANsurferCLI/scli ]
  722. then
  723.    /bin/echo "SANsurfer FC/CNA CLI" > $LOGDIR/Mgmt_tools/scli_installed.txt
  724.    /opt/QLogic_Corporation/SANsurferCLI/scli -v 2>> $LOGDIR/script/misc_err.log |grep -m1 Build >> $LOGDIR/Mgmt_tools/scli_installed.txt
  725.    /bin/echo -n "installed ... "
  726. #   /bin/echo -n "Gathering FC configuration information ... "
  727. #   /opt/QLogic_Corporation/SANsurferCLI/scli -z > $LOGDIR/Mgmt_tools/scli.out 2>&1
  728.    /bin/echo "done"
  729. elif [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/scli ]
  730. then
  731.    /bin/echo "SANsurfer FC/CNA CLI" > $LOGDIR/Mgmt_tools/scli_installed.txt
  732.    /opt/QLogic_Corporation/QConvergeConsoleCLI/scli -v 2>> $LOGDIR/script/misc_err.log |grep -m1 Build >> $LOGDIR/Mgmt_tools/scli_installed.txt
  733.    /bin/echo -n "installed ... "
  734. #   /bin/echo -n "Gathering FC configuration information ... "
  735. #   /opt/QLogic_Corporation/QConvergeConsoleCLI/scli -z > $LOGDIR/Mgmt_tools/scli.out 2>&1
  736.    /bin/echo "done"
  737. else
  738.    /bin/echo "FC CLI not found or not installed" > $LOGDIR/Mgmt_tools/scli_installed.txt
  739.    /bin/echo "not installed"
  740. fi
  741.  
  742. #####################################################################
  743. # Gather iSCSI CLI info (if installed)
  744. #####################################################################
  745. /bin/echo -n "Searching for iSCSI CLI tools ... "
  746. if [ -x /opt/QLogic_Corporation/SANsurferiCLI/iscli ]
  747. then
  748.    /bin/echo "SANsurfer iSCSI CLI" > $LOGDIR/Mgmt_tools/iscli_installed.txt
  749.    /opt/QLogic_Corporation/SANsurferiCLI/iscli -ver |egrep "Version|MAPI" >> $LOGDIR/Mgmt_tools/iscli_installed.txt
  750.    /bin/echo -n "installed ... "
  751. #   /bin/echo -n "Gathering iSCSI configuration information ... "
  752. #   /opt/QLogic_Corporation/SANsurferiCLI/iscli -z > $LOGDIR/Mgmt_tools/iscli.out 2>&1
  753.    /bin/echo "done"
  754. elif [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli ]
  755. then
  756.    /bin/echo "SANsurfer iSCSI CLI" > $LOGDIR/Mgmt_tools/iscli_installed.txt
  757.    /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli -ver |egrep "Version|MAPI" >> $LOGDIR/Mgmt_tools/iscli_installed.txt
  758.    /bin/echo -n "installed ... "
  759. #   /bin/echo -n "Gathering iSCSI configuration information ... "
  760. #   /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli -z > $LOGDIR/Mgmt_tools/iscli.out 2>&1
  761.    /bin/echo "done"
  762. else
  763.    /bin/echo "iSCSI CLI not found or not installed" > $LOGDIR/Mgmt_tools/iscli_installed.txt
  764.    /bin/echo "not installed!"
  765. fi
  766.  
  767. #####################################################################
  768. # Gather netscli info (if installed)
  769. #####################################################################
  770. /bin/echo -n "Searching for CNA network tools  ... "
  771. if [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli ]
  772. then
  773.    /bin/echo "SANsurfer CNA Networking CLI" > $LOGDIR/Mgmt_tools/netscli_installed.txt
  774.    /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli -ver |egrep "version|MAPI" >> $LOGDIR/Mgmt_tools/netscli_installed.txt
  775.    /bin/echo -n "installed ... "
  776. #   /bin/echo -n "Gathering CNA Networking configuration information ... "
  777. #   /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli -z > $LOGDIR/Mgmt_tools/netscli.out 2>&1
  778.    /bin/echo "done"
  779. else
  780.    /bin/echo "CNA Networking CLI not found or not installed" > $LOGDIR/Mgmt_tools/netscli_installed.txt
  781.    /bin/echo "not installed!"
  782. fi
  783.  
  784. #####################################################################
  785. # Gather Infiniband info
  786. #
  787. #####################################################################
  788. if [ $IBINSTALLED -eq 1 ]
  789. then
  790.    /bin/echo -n "Gathering Infiniband info: "
  791.    mkdir $LOGDIR/infiniband
  792.    rpm -qa --qf \
  793.         '%{NAME}-%{VERSION}-%{RELEASE} Vendor=%{VENDOR} %{URL} Built=%{BUILDTIME:date}\n' | \
  794.         egrep -i openib\|openfabrics\|intel\|qlogic\|pathscale\|silverstorm | sort > $LOGDIR/infiniband/ib_rpms.out
  795.  
  796.    if [ -d /opt/iba ]
  797.    then
  798.       ls -alRF /opt/iba > $LOGDIR/infiniband/ls_opt_iba.out
  799.    fi
  800.    if [ -d /opt/infinipath ]
  801.    then
  802.       ls -alRF /opt/infinipath > $LOGDIR/infiniband/ls_opt_infinipath.out
  803.    fi
  804.    if [ -d /opt/qlogic_ofed ]
  805.    then
  806.       ls -alRF /opt/qlogic_ofed > $LOGDIR/infiniband/ls_opt_qlogic_ofed.out
  807.    fi
  808.    if [ -d /opt/qlogic_fm ]
  809.    then
  810.       ls -alRF /opt/qlogic_fm > $LOGDIR/infiniband/ls_opt_qlogic_fm.out
  811.    fi
  812.    if [ -d /opt/ifs_fm ]
  813.    then
  814.       ls -alRF /opt/ifs_fm > $LOGDIR/infiniband/ls_opt_ifs_fm.out
  815.    fi
  816.  
  817.    ls -lF /dev/ipath* /dev/infiniband > $LOGDIR/infiniband/ls_dev_info.out 2>&1
  818.    egrep infiniband\|ipath /etc/udev*/* /etc/udev*/*/* 2>/dev/null | grep -v multipath > $LOGDIR/infiniband/udev_info.out
  819.  
  820.    if [ -d /usr/mpi ]
  821.    then
  822.       ls -alRF /usr/mpi > $LOGDIR/infiniband/ls_usr_mpi.out
  823.    fi
  824.    which mpi-selector > /dev/null 2>&1
  825.    if [ $? -eq 0 ]
  826.    then
  827.       /bin/echo "MPI List:"   >  $LOGDIR/infiniband/mpi-selector.out 2>&1
  828.       mpi-selector --list     >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  829.       /bin/echo "Active MPI:" >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  830.       mpi-selector --query    >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  831.    fi
  832.  
  833.    if [ -f /opt/iba/src/mpi_apps/.prefix ]
  834.    then
  835.       cp /opt/iba/src/mpi_apps/.prefix $LOGDIR/infiniband/mpi_apps.prefix
  836.    fi
  837.  
  838.    /bin/echo -n " ... adapter info "
  839.    which ibv_devinfo > /dev/null 2>&1
  840.    if [ $? -eq 0 ]
  841.    then
  842.       ibv_devinfo -v > $LOGDIR/infiniband/ibv_devinfo.out 2>&1
  843.    fi
  844.    which ibv_devices > /dev/null 2>&1
  845.    if [ $? -eq 0 ]
  846.    then
  847.       ibv_devices    > $LOGDIR/infiniband/ibv_devices.out 2>&1
  848.    fi
  849.    which ibstatus > /dev/null 2>&1
  850.    if [ $? -eq 0 ]
  851.    then
  852.       ibstatus       > $LOGDIR/infiniband/ibstatus.out 2>&1
  853.    fi
  854.    which ibstat > /dev/null 2>&1
  855.    if [ $? -eq 0 ]
  856.    then
  857.       ibstat         > $LOGDIR/infiniband/ibstat.out 2>&1
  858.    fi
  859.    which perfquery > /dev/null 2>&1
  860.    if [ $? -eq 0 ]
  861.    then
  862.       perfquery      > $LOGDIR/infiniband/perfquery.out 2>&1
  863.    fi
  864.  
  865.    if [ $MLXINSTALLED -eq 1 ]
  866.    then
  867. #      HCAS=`grep InfiniBand $LOGDIR/misc/lspci.out | grep -vi bridge | grep -vi QLogic | cut -d\  -f1`
  868.       HCAS=`grep Mellanox $LOGDIR/misc/lspci.out | grep -vi bridge | cut -d\  -f1`
  869.       if [ -n "$HCAS" ]
  870.       then
  871.          for HCA in $HCAS
  872.          do
  873.             touch $LOGDIR/infiniband/mlx_hca_info.out
  874.             echo "#####################" >> $LOGDIR/infiniband/mlx_hca_info.out
  875.             mstvpd $HCA                  >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  876.             mstflint -d $HCA dc          >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  877.             mstflint -d $HCA q           >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  878.             mstflint -d $HCA v           >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  879.             echo "#####################" >> $LOGDIR/infiniband/mlx_hca_info.out
  880.          done
  881.       fi
  882.    else
  883.       which ipath_control > /dev/null 2>&1
  884.       if [ $? -eq 0 ]
  885.       then
  886.          ipath_control -iv > $LOGDIR/infiniband/ipath_control.out 2>&1
  887.       fi
  888.    fi
  889.  
  890.    ADAPTERSTATUS=`grep -i state $LOGDIR/infiniband/ibstat.out $LOGDIR/infiniband/ibv_devinfo.out 2> $LOGDIR/script/misc_err.log|grep -i active`
  891.    if [ $? -eq 0 ]
  892.    then
  893.       /bin/echo -n " ... fabric info "
  894.       which ibnodes > /dev/null 2>&1
  895.       if [ $? -eq 0 ]
  896.       then
  897.          ibnodes > $LOGDIR/infiniband/ibnodes.out 2>&1
  898.       fi
  899.       which iblinkinfo > /dev/null 2>&1
  900.       if [ $? -eq 0 ]
  901.       then
  902.          iblinkinfo > $LOGDIR/infiniband/iblinkinfo.out 2>&1
  903.       else
  904.          which iblinkinfo.pl > /dev/null 2>&1
  905.          if [ $? -eq 0 ]
  906.          then
  907.             iblinkinfo.pl > $LOGDIR/infiniband/iblinkinfo.out 2>&1
  908.          fi
  909.       fi
  910.       ibnetdiscover -p > $LOGDIR/infiniband/ibnetdiscover.out 2>&1
  911.       which ibqueryerrors > /dev/null 2>&1
  912.       if [ $? -eq 0 ]
  913.       then
  914.          ibqueryerrors -r > $LOGDIR/infiniband/ibqueryerrors.out 2>&1
  915.       else
  916.          ibqueryerrors.pl -r > $LOGDIR/infiniband/ibqueryerrors.out 2>&1
  917.       fi
  918.       which sminfo > /dev/null 2>&1
  919.       if [ $? -eq 0 ]
  920.       then
  921.          sminfo > $LOGDIR/infiniband/sminfo.out 2>&1
  922.       fi
  923.       which saquery > /dev/null 2>&1
  924.       if [ $? -eq 0 ]
  925.       then
  926.          saquery      > $LOGDIR/infiniband/saquery.out 2>&1
  927.          saquery LR   > $LOGDIR/infiniband/saquery_links.out 2>&1
  928. # DG: PIR option is not what is expected with RHEL 5.4 and SLES 11
  929.          saquery PIR  > $LOGDIR/infiniband/saquery_verbose.out 2>&1
  930.          saquery -s  >> $LOGDIR/infiniband/sminfo.out 2>&1
  931.       fi
  932.       which fabric_info > /dev/null 2>&1
  933.       if [ $? -eq 0 ]
  934.       then
  935.          /sbin/fabric_info > $LOGDIR/infiniband/fabric_info.out 2>&1
  936.       fi
  937.    else
  938.       /bin/echo -n " ... no adapter status, skipping fabric info "
  939.    fi
  940.  
  941.    /bin/echo "... done"
  942.  
  943.    if [ $IBAINSTALLED -eq 1 ]
  944.    then
  945.       /bin/echo "Running iba_capture ..."
  946.       iba_capture -d 3 $LOGDIR/infiniband/iba_capture.tgz |grep -v iba_capture
  947.    elif [ $MLXINSTALLED -eq 0 ]
  948.    then
  949.       which ipathstats > /dev/null 2>&1
  950.       if [ $? -eq 0 ]
  951.       then
  952.          ipathstats > $LOGDIR/infiniband/ipathstats.out 2>&1
  953.          /bin/echo >> $LOGDIR/infiniband/ipathstats.out 2>&1
  954.          ipathstats -e >> $LOGDIR/infiniband/ipathstats.out 2>&1
  955.       fi
  956.       which ipath_trace > /dev/null 2>&1
  957.       if [ $? -eq 0 ]
  958.       then
  959.          ipath_trace -d > $LOGDIR/infiniband/ipath_trace.out 2>&1
  960.       fi
  961.    fi
  962. fi
  963.  
  964. #####################################################################
  965. # Place holder below for dashboard.sh
  966. #####################################################################
  967. # Start of dashboard.sh
  968. #####################################################################
  969. # Post-process script output into pdeudo-meaningful html
  970. #####################################################################
  971.  
  972. # The next line (LOGDIR=$1) must be removed before merging in with 
  973. # the main data gathering script
  974. cd $LOGDIR
  975.  
  976. #####################################################################
  977. # Create revisionhistory.txt for the script output
  978. #####################################################################
  979. cat > $LOGDIR/script/revisionhistory.txt <<!
  980. Intel Infiniband Information Gathering Script - Revision History
  981.  
  982.  Revision History
  983.   Rev  4.05.01 2013/04/05
  984.       - Added files for Intel release of IFS/OFED+ software stack.
  985.   Rev  4.05.00 2012/10/19
  986.       - Convert information to Intel.  Change Dashboard plus other cleanups.
  987.       - Added /var/log/ipath_perf_tuning.log
  988.       - Script renamed to ibsupport_info.sh 
  989.   Rev  4.04.11 2012/06/26
  990.       - Add numa utilities to query numa support
  991.       - Removed sosreport (RHEL) and supportconfig (SLES)
  992.   Rev  4.04.10 2012/04/25
  993.       - Minor mod for dashboard to scan correct file for FC Link state
  994.   Rev  4.04.09 2012/02/07
  995.       - Added netscli
  996.   Rev  4.04.08 2011/11/29
  997.       - Rather than trying to guess /sbin, /usr/sbin paths, just fix $PATH
  998.       - Added "ip cmd show" to report address and link info (ifconfig deprecated)
  999.       - Finally (so we hope) got rid of the duplicate driver params in the dashboard
  1000.   Rev  4.04.07 2011/10/05
  1001.       - Changes to include new path for fc/iscsi/nic cli tools
  1002.   Rev  4.04.06 2011/09/23
  1003.       - Added "top" output
  1004.       - Added /etc/modprobe.d/scsi_mod.conf (RHEL 6.x)
  1005.   Rev  4.04.05 2011/09/08
  1006.       - Tweaks to address Mellanox LOM 
  1007.       - Added /sbin and /usr/sbin for commands "hidden" by sudo
  1008.   Rev  4.04.04  2011/09/01
  1009.       - Changes to include /etc/modprobe.d/<module>.conf files
  1010.   Rev  4.04.03  2011/06/14
  1011.       - Added MPI queries
  1012.       - Temporarily removed "df" command due to some problems on RHEL 6
  1013.       - Started other changes for RHEL 6 issues
  1014.       - Added anaconda to sosreport and ~/anaconda-ks.cfg (RHEL) ~/autoinstall.xml (SLES) files
  1015.   Rev  4.04.02  2011/05/04
  1016.       - Added Rocks version to dashboard
  1017.       - Only gather IB fabric information if adapter state is active
  1018.       - "pulled" ibdiagnet because it has shown problems on some fabrics
  1019.   Rev  4.04.01  2011/04/13
  1020.       - Barely out of the box and have to make a change ...
  1021.       - Added /etc/tmi.conf
  1022.   Rev  4.04.00  2011/04/12
  1023.       - Major changes to include Infiniband host and fabric information
  1024.       - Restructure of qla_linux_info.sh to query QLogic hardware before querying
  1025.         product-related info
  1026.       - New script is qla_linux_ibinfo.sh
  1027.   Rev  4.02.08  2011/03/04
  1028.       - Added /opt/QLogic_Corporation/FW_Dumps/*
  1029.       - Added sosreport (RHEL) and supportconfig (SLES)
  1030.       - Added FC driver version check to detect RAMDISK mismatch
  1031.   Rev  4.02.07a 2010/05/17
  1032.       - Added some minor changes to capture more IB goodies
  1033.   Rev  4.02.07  2010/04/22
  1034.       - Added /etc/sysctl.conf for collection
  1035.   Rev  4.02.06  2010/04/02
  1036.       - Removed VMware info to new qla_vmware_info.sh script
  1037.       - Added a few Infiniband goodies in lieu of a major overhaul of the IB script
  1038.       - Minor tweaks to remove some more errors introduced with the new changes
  1039.   Rev  4.02.05  2010/03/05
  1040.       - Added ls /var/crash
  1041.       - Added a few more VMware goodies until qla_vmware_info.sh is complete
  1042.   Rev  4.02.04  2010/02/19
  1043.       - Minor fixes to remove error messages
  1044.       - Moved OS stuff to the front to check for VMware
  1045.       - Plans (commented for now) to check for VMware and exit when separate VMWare script done
  1046.       - Added esx and vmk commands if VMware 
  1047.   Rev  4.02.03  2010/01/19
  1048.       - Added vmware logs
  1049.   Rev  4.02.02  2009/11/24
  1050.       - Added ethtool -k to get offload info on QLogic NICs and CNAs.
  1051.       - Changed where we look to get scli information (go directly to /opt)
  1052.   Rev  4.02.01  2009/11/13
  1053.       - Minor fix to the "which xxx" commands.  Some OSes did not like the redirect.
  1054.       - Add /proc/net/bonding and /proc/net/vlan for FCoE and Netxen.
  1055.       - Modified sysfs gathering due to changes with SLES 11.
  1056.       - Finally got rid of index.html.
  1057.       - Added modinfo for qioctlmod module
  1058.   Rev  4.02.00  2009/09/02
  1059.       - Significant modifications to restructure dashboard and gather additional data
  1060.       - Added more FC info from /sys for inbox driver
  1061.       - Added separate modinfo query for qisioctl to more easily add to dashboard
  1062.       - Integrated SANsurfer / agent / [i]scli / API version info into mgmt tools section
  1063.       - Added section for ethernet info (FCoE and NetXen NICs)
  1064.       - Moved dashboard.html and details.html to root directory of tgz file and deprecated index.html
  1065.   Rev  4.01.01  2009/07/14
  1066.       - Fixed serious bug -NOT- changed title from Windows to Linux (can't be having that!)
  1067.       - Changed reference from "Readme" to "Details" (readme.html is now details.html)
  1068.   Rev  4.01.00  2009/05/14
  1069.       - Significant modifications to gather additional data (and clear the RFE stack)
  1070.       - Added logger entry for script start (pointless to do one at the end of the script)
  1071.       - Added more files collected from /proc directory
  1072.       - Added modinfo for qisioctl module
  1073.       - Added temporary tgz fix for /sys files causing extraction errors
  1074.       - Added version query for /usr/lib[64]/libqlsdm.so (API)
  1075.       - Added more command queries (lsscsi lsof free vmstat sysctl)
  1076.   Rev  4.00.06  2009/03/12
  1077.       - Added check for script run with root permissions
  1078.       - Added /etc/*-release /etc/*_version to verify supported distributions
  1079.   Rev  4.00.05  2009/01/27
  1080.       - Added dmidecode output
  1081.       - Changed datecode on the tgz filename from MMDDYY to YYMMDD
  1082.   Rev  4.00.04  2008/11/10
  1083.       - Added driver & scsi parameters to dashboard
  1084.   Rev  4.00.03  2008/10/27
  1085.       - Added GCC version to dashboard
  1086.   Rev  4.00.02  2008/08/13
  1087.       - Fix directory listing of 32-bit and 64-bit loadable libraries
  1088.   Rev  4.00.01  2008/08/06
  1089.       - Add directory listing of 32-bit and 64-bit loadable libraries
  1090.   Rev  4.00.00  2007/12/07
  1091.       - Major restructuring to add html dashboard
  1092.       - added /proc/cpuinfo
  1093.   Rev  3.00.01  2007/08/23
  1094.       - Add driver_logs.tar to capture driver installation logs
  1095.       - Change iscli to use the new "-z" option
  1096.   Rev  3.00.00  2007/01/18
  1097.       - Change output directory and tgz name to assure uniqueness
  1098.       - Add iscli_info.sh script to this script
  1099.   Rev  2.00.03  2006/12/18
  1100.       - Add uptime
  1101.   Rev  2.00.02  2006/04/19
  1102.       - Add gcc info
  1103.   Rev  2.00.01  2006/03/23
  1104.       - Add ls -alRF /sys
  1105.   Rev  2.00.00  2006/03/16
  1106.       - Major restructuring to remove OS-specific errors
  1107.   Rev  1.00.04  2006/12/06
  1108.       - Add ifconfig info
  1109.       - Add ls -alR /etc/rc.d/ /opt/QLogic* /usr/local/bin
  1110.       - Add chkconfig to list configured daemons
  1111.   Rev  1.00.03  2005/05/20
  1112.       - Add SuSE ia64 goodies
  1113.       - Add /etc/qla2xxx.conf
  1114.   Rev  1.00.02  2005/03/28
  1115.       - Add lspci -v (hwconf info)
  1116.       - Add scli -z all (if installed)
  1117.       - Add qla4xxx for QLA4010 on 2.6 kernel
  1118.       - Add dmesg command when no /var/log/dmesg file
  1119.   Rev  1.00.01  2005/03/28
  1120.       - Start of Revision History
  1121. !
  1122.  
  1123. #####################################################################
  1124. # Create dashboard.html for the script output
  1125. #####################################################################
  1126. DBH=$LOGDIR/dashboard.html
  1127. #
  1128. # Header
  1129. #
  1130. cat > $DBH <<!
  1131. <head><title>$LOGNAME Dashboard</title></head> 
  1132. <body> 
  1133. <font face="Courier New"> 
  1134.  <a id="top"></a> 
  1135. <div align="center"> 
  1136. <b>Intel Infiniband Information Gathering Script Dashboard</b><br> 
  1137. !
  1138. /bin/echo `date` >> $DBH
  1139. /bin/echo "<hr><hr></div>" >> $DBH
  1140.  
  1141. #
  1142. # Header
  1143. #
  1144. cat >> $DBH <<!
  1145. <pre>Script Version $ScriptVER
  1146. <b>Index:</b><hr> 
  1147. Dashboard Links:                                      Key File Links:
  1148. !
  1149. /bin/echo -n "<a href=\"#systeminfo\">System Information</a>                                    " >> $DBH
  1150. /bin/echo    "<a href=\"details.html\">details.html</a>  - detailed information on collected files" >> $DBH
  1151. /bin/echo -n "<a href=\"#mgmtinfo\">Management Tools Information</a>                          " >> $DBH
  1152. /bin/echo    "<a href=\"misc/lspci.out\">lspci.out</a>     - list of installed PCI/PCIe hardware" >> $DBH
  1153. #
  1154. # DG: Eventually remove comments on "if [ $xxxINSTALLED" blocks to "compartmentalize" the dashboard
  1155. #
  1156. #if [ $FCINSTALLED -eq 1 ]
  1157. #then
  1158.    /bin/echo -n "<a href=\"#fcinfo\">Fibre Channel Information</a>                             " >> $DBH
  1159.    if [ -f Mgmt_tools/scli.out ]
  1160.       then
  1161.          /bin/echo "<a href=\"Mgmt_tools/scli.out\">scli.out</a>      - scli output" >> $DBH
  1162.       else
  1163.          /bin/echo "scli.out      - scli output (Not Installed)" >> $DBH
  1164.    fi
  1165. #fi
  1166. #if [ $ISCSIINSTALLED -eq 1 ]
  1167. #then
  1168.    /bin/echo -n "<a href=\"#iscsiinfo\">iSCSI Information</a>                                     " >> $DBH
  1169.    if [ -f Mgmt_tools/iscli.out ]
  1170.       then
  1171.          /bin/echo "<a href=\"Mgmt_tools/iscli.out\">iscli.out</a>     - iscli output" >> $DBH
  1172.       else
  1173.          /bin/echo "iscli.out     - iscli output (Not Installed)" >> $DBH
  1174.    fi
  1175. #fi
  1176. #if [ $ETHERINSTALLED -eq 1 ]
  1177. #then
  1178.    /bin/echo -n "<a href=\"#etherinfo\">Ethernet Information</a>                                  " >> $DBH
  1179.    /bin/echo    "<a href=\"modules/lsmod.out\">lsmod.out</a>     - list of loaded modules" >> $DBH
  1180. #fi
  1181. #if [ $IBINSTALLED -eq 1 ]
  1182. #then
  1183.    /bin/echo -n "<a href=\"#ibinfo\">Infiniband Information</a>                                " >> $DBH
  1184.    if [ -f infiniband/iba_capture.tgz ]
  1185.       then
  1186.          /bin/echo "<a href=\"infiniband/iba_capture.tgz\">iba_capture</a>   - iba_capture tgz output" >> $DBH
  1187.       else
  1188.          /bin/echo "iba_capture   - iba_capture tgz output (IFS Not Installed)" >> $DBH
  1189.    fi
  1190. #fi
  1191. #if [ $FCINSTALLED -eq 1 ]
  1192. #then
  1193.    /bin/echo -n "<a href=\"#fclogs\">Fibre Channel Message Logs</a>                            " >> $DBH
  1194.    if [ -f misc/lsscsi.out ]
  1195.       then
  1196.          /bin/echo "<a href=\"misc/lsscsi.out\">lsscsi.out</a>    - list of scsi devices" >> $DBH
  1197.       elif [ -f proc/scsi/scsi ]
  1198.       then
  1199.          /bin/echo "<a href=\"proc/scsi/scsi\">scsi</a>          - list of scsi devices (/proc/scsi/scsi)" >> $DBH
  1200.       else
  1201.          /bin/echo "scsi          - No SCSI information found" >> $DBH
  1202.    fi
  1203. #fi
  1204. #if [ $ISCSIINSTALLED -eq 1 ]
  1205. #then
  1206.    /bin/echo -n "<a href=\"#iscsilogs\">iSCSI Message Logs</a>                                    " >> $DBH
  1207.    if [ -f etc/modprobe.conf.local ]
  1208.       then
  1209.          /bin/echo "<a href=\"etc/modprobe.conf.local\">modprobe.conf</a> - list of module parameters (modprobe.conf.local)" >> $DBH
  1210.       elif [ -f etc/modprobe.conf ]
  1211.       then
  1212.          /bin/echo "<a href=\"etc/modprobe.conf\">modprobe.conf</a> - list of module parameters" >> $DBH
  1213.       else
  1214.          /bin/echo "<a href=\"etc/modules.conf\">modules.conf</a>  - list of module parameters" >> $DBH
  1215.    fi
  1216. #fi
  1217. #if [ $ETHERINSTALLED -eq 1 ]
  1218. #then
  1219.    /bin/echo -n "<a href=\"#etherlogs\">Ethernet Message Logs</a>                                 " >> $DBH
  1220.    /bin/echo    "<a href=\"network/ifconfig.out\">ifconfig.out</a>  - list of network interfaces" >> $DBH
  1221. #fi
  1222. #if [ $IBINSTALLED -eq 1 ]
  1223. #then
  1224.    /bin/echo "<a href=\"#iblogs\">Infiniband Message Logs</a><br>" >> $DBH 
  1225. #fi
  1226.  
  1227. #
  1228. # System Information
  1229. #
  1230. cat >> $DBH <<!
  1231. <hr><a id="systeminfo"></a><b><a href="details.html#osfiles">System Information:</a></b>     <a href="#top">top</a><hr> 
  1232. !
  1233. HOSTNAME=`cut -d " " -f2 < $LOGDIR/OS/uname`
  1234. /bin/echo "Host Name:                 $HOSTNAME" >> $DBH
  1235. if [ -f $LOGDIR/OS/redhat-release ]
  1236. then
  1237.    OSNAME=`cat $LOGDIR/OS/redhat-release`
  1238.    if [ -f $LOGDIR/OS/rocks-release ]
  1239.    then
  1240.       OSNAME="$OSNAME / `cat $LOGDIR/OS/rocks-release`"
  1241.    fi
  1242. elif [ -f $LOGDIR/OS/SuSE-release ]
  1243. then
  1244.    OSNAME=`grep -i suse $LOGDIR/OS/SuSE-release`
  1245.    OSVER=`grep VERSION $LOGDIR/OS/SuSE-release`
  1246.    OSPATCH=`grep -h PATCH $LOGDIR/OS/*release`
  1247. else
  1248.    OSNAME="unknown"
  1249. fi
  1250. /bin/echo "OS Name:                   $OSNAME" >> $DBH
  1251. if [ -f $LOGDIR/OS/SuSE-release ]
  1252. then
  1253.    /bin/echo "OS Version:                $OSVER,   $OSPATCH" >> $DBH
  1254. fi
  1255. KERNELVERSION=`cut -d " " -f3 < $LOGDIR/OS/uname`
  1256. /bin/echo "Kernel Version:            $KERNELVERSION" >> $DBH
  1257. /bin/echo "GCC Version:               `grep "gcc (" $LOGDIR/misc/gcc.out`" >> $DBH
  1258. /bin/echo "System Up Time:           `cat $LOGDIR/misc/uptime.out`" >> $DBH
  1259. PRODNAME=`sed -n '/System Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Product Name" | cut -d ":" -f2`
  1260. MFGRNAME=`sed -n '/System Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Manufacturer" | cut -d ":" -f2`
  1261. if [ -z "$PRODNAME" -o -z "$MFGRNAME" ]
  1262. then
  1263. PRODNAME=`sed -n '/Base Board Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Product Name" | cut -d ":" -f2`
  1264. MFGRNAME=`sed -n '/Base Board Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Manufacturer" | cut -d ":" -f2`
  1265. fi
  1266. /bin/echo "System Manufacturer:      $MFGRNAME" >> $DBH
  1267. /bin/echo "System Model:             $PRODNAME" >> $DBH
  1268. CPUMODEL=`grep "model name" $LOGDIR/proc/cpuinfo |uniq |cut -d " " -f3-9`
  1269. CPUCOUNT=`grep -c "model name" $LOGDIR/proc/cpuinfo`
  1270. CPUSPEED=`grep "cpu MHz" $LOGDIR/proc/cpuinfo |uniq |cut -d " " -f3-9`
  1271. /bin/echo "CPU Info:                  (x$CPUCOUNT) $CPUMODEL, $CPUSPEED MHz" >> $DBH
  1272. BIOSVEND=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Vendor" | cut -d ":" -f2`
  1273. BIOSVERS=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Version" | cut -d ":" -f2`
  1274. BIOSDATE=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Release Date" | cut -d ":" -f2`
  1275. /bin/echo "BIOS Version:             $BIOSVEND  Version $BIOSVERS  $BIOSDATE" >> $DBH
  1276. /bin/echo >> $DBH
  1277.  
  1278. /bin/echo "<B>FC Driver Parameters:</B>" >> $DBH
  1279. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1280. then
  1281.    grep -h "options qla2" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1282. fi
  1283. if [ -f $LOGDIR/etc/modprobe.conf ]
  1284. then
  1285.    grep -h "options qla2" $LOGDIR/etc/modprobe.conf >> $DBH
  1286. fi
  1287. if [ -f $LOGDIR/etc/modprobe.d/qla2xxx.conf ]
  1288. then
  1289.    grep -h "options qla2" $LOGDIR/etc/modprobe.d/qla2xxx.conf >> $DBH
  1290. fi
  1291.  
  1292. /bin/echo "<B>iSCSI Driver Parameters:</B>" >> $DBH
  1293. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1294. then
  1295.    grep -h "options qla4" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1296. fi
  1297. if [ -f $LOGDIR/etc/modprobe.conf ]
  1298. then
  1299.    grep -h "options qla4" $LOGDIR/etc/modprobe.conf >> $DBH
  1300. fi
  1301. if [ -f $LOGDIR/etc/modprobe.d/qla4xxx.conf ]
  1302. then
  1303.    grep -h "options qla4" $LOGDIR/etc/modprobe.d/qla4xxx.conf >> $DBH
  1304. fi
  1305.  
  1306. /bin/echo "<B>Ethernet Module Parameters:</B>" >> $DBH
  1307. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1308. then
  1309.    grep -h options $LOGDIR/etc/modprobe.conf.local | egrep "qla3|qlge|qlcnic|nx_nic|netxen_nic" >> $DBH
  1310. fi
  1311. if [ -f $LOGDIR/etc/modprobe.conf ]
  1312. then
  1313.    grep -h options $LOGDIR/etc/modprobe.conf | egrep "qla3|qlge|qlcnic|nx_nic|netxen_nic" >> $DBH
  1314. fi
  1315. if [ -f $LOGDIR/etc/modprobe.d/qla3xxx.conf ]
  1316. then
  1317.    grep -h "options qla3" $LOGDIR/etc/modprobe.d/qla3xxx.conf >> $DBH
  1318. fi
  1319. if [ -f $LOGDIR/etc/modprobe.d/qlge.conf ]
  1320. then
  1321.    grep -h "options qlge" $LOGDIR/etc/modprobe.d/qlge.conf >> $DBH
  1322. fi
  1323. if [ -f $LOGDIR/etc/modprobe.d/qlcnic.conf ]
  1324. then
  1325.    grep -h "options qlcnic" $LOGDIR/etc/modprobe.d/qlcnic.conf >> $DBH
  1326. fi
  1327. if [ -f $LOGDIR/etc/modprobe.d/nx_nic.conf ]
  1328. then
  1329.    grep -h "options nx_nic" $LOGDIR/etc/modprobe.d/nx_nic.conf >> $DBH
  1330. fi
  1331. if [ -f $LOGDIR/etc/modprobe.d/netxen_nic.conf ]
  1332. then
  1333.    grep -h "options netxen_nic" $LOGDIR/etc/modprobe.d/netxen_nic.conf >> $DBH
  1334. fi
  1335.  
  1336. /bin/echo "<B>SCSI Module Parameters:</B>" >> $DBH
  1337. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1338. then
  1339.    grep -h "options scsi" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1340. fi
  1341. if [ -f $LOGDIR/etc/modprobe.conf ]
  1342. then
  1343.    grep -h "options scsi" $LOGDIR/etc/modprobe.conf >> $DBH
  1344. fi
  1345. if [ -f $LOGDIR/etc/modprobe.d/scsi.conf ]
  1346. then
  1347.    grep -h "options scsi" $LOGDIR/etc/modprobe.d/scsi.conf >> $DBH
  1348. fi
  1349.  
  1350. /bin/echo "<B>Infiniband Driver Parameters:</B>" >> $DBH
  1351. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1352. then
  1353.    grep -h "options ib_" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1354. fi
  1355. if [ -f $LOGDIR/etc/modprobe.conf ]
  1356. then
  1357.    grep -h "options ib_" $LOGDIR/etc/modprobe.conf >> $DBH
  1358. fi
  1359. if [ -f $LOGDIR/etc/modprobe.d/ib_qib.conf ]
  1360. then
  1361.    grep -h "options ib_qib" $LOGDIR/etc/modprobe.d/ib_qib.conf >> $DBH
  1362. fi
  1363. if [ -f $LOGDIR/etc/modprobe.d/ib_ipoib.conf ]
  1364. then
  1365.    grep -h "options ib_ipoib" $LOGDIR/etc/modprobe.d/ib_ipoib.conf >> $DBH
  1366. fi
  1367. /bin/echo >> $DBH
  1368.  
  1369. /bin/echo "<B>Adapters Installed:</B>" >> $DBH
  1370. if [ $FCINSTALLED -eq 1 ]
  1371. then
  1372.    grep QLogic $LOGDIR/misc/lspci.out|grep "Fibre Channel:" >> $DBH
  1373. #else
  1374. #   /bin/echo "No Fibre Channel Adapters Installed" >> $DBH
  1375. fi
  1376. if [ $ISCSIINSTALLED -eq 1 ]
  1377. then
  1378. #   grep QLogic $LOGDIR/misc/lspci.out|grep "Network controller:" >> $DBH
  1379. #else
  1380.    /bin/echo "No iSCSI Adapters Installed" >> $DBH
  1381. fi
  1382. if [ $ETHERINSTALLED -eq 1 ]
  1383. then
  1384.    grep QLogic $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1385.    grep NetXen $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1386.    # QLA8042 uses Intel NIC - report only if FC installed
  1387.    if [ $FCINSTALLED -eq 1 ]
  1388.    then
  1389.       grep "Intel Corporation 82598" $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1390.    fi
  1391. #else
  1392. #   /bin/echo "No Converged Network Adapters Installed" >> $DBH
  1393. fi
  1394. if [ $IBINSTALLED -eq 1 ]
  1395. then
  1396.    grep QLogic $LOGDIR/misc/lspci.out|grep "InfiniBand:" >> $DBH
  1397.    grep Mellanox $LOGDIR/misc/lspci.out|egrep "InfiniBand:|Network controller:" >> $DBH
  1398. else
  1399.    /bin/echo "No Infiniband Adapters Installed" >> $DBH
  1400. fi
  1401. /bin/echo >> $DBH
  1402.  
  1403. #
  1404. # Management Tools Information
  1405. #
  1406. cat >> $DBH <<!
  1407. <hr><a id="mgmtinfo"></a><b><a href="details.html#Mgmt_tools">Management Tools Information:</a></b>     <a href="#top">top</a><hr> 
  1408. !
  1409. cat >> $DBH <<!
  1410. <B>FC Adapter Tools:</B>
  1411. !
  1412. if [ $FCINSTALLED -eq 1 ]
  1413. then
  1414.    cat $LOGDIR/Mgmt_tools/sansurfer_fc_installed.txt >> $DBH
  1415.    /bin/echo >> $DBH
  1416.    cat $LOGDIR/Mgmt_tools/api_installed.txt >> $DBH
  1417.    /bin/echo >> $DBH
  1418.    cat $LOGDIR/Mgmt_tools/scli_installed.txt >> $DBH
  1419. else
  1420.    /bin/echo "No FC Adapters installed" >> $DBH
  1421. fi
  1422.    /bin/echo >> $DBH
  1423.  
  1424. cat >> $DBH <<!
  1425. <B>iSCSI Adapter Tools:</B>
  1426. !
  1427. if [ $ISCSIINSTALLED -eq 1 ]
  1428. then
  1429.    cat $LOGDIR/Mgmt_tools/sansurfer_iscsi_installed.txt | sed "s///" >> $DBH
  1430.    /bin/echo >> $DBH
  1431.    cat $LOGDIR/Mgmt_tools/iscli_installed.txt >> $DBH
  1432. else
  1433.    /bin/echo "No iSCSI Adapters installed" >> $DBH
  1434. fi
  1435. /bin/echo >> $DBH
  1436.  
  1437. # Netxen and FCoE CNA Network Tools Version Information
  1438. cat >> $DBH <<!
  1439. <B>CNA Networking Tools:</B>
  1440. !
  1441. if [ $ETHERINSTALLED -eq 1 ]
  1442. then
  1443.    cat $LOGDIR/Mgmt_tools/netscli_installed.txt >> $DBH
  1444. else
  1445.    /bin/echo "No Converged Network Adapters installed" >> $DBH
  1446. fi
  1447. /bin/echo >> $DBH
  1448.  
  1449. # Infiniband Tools Version Information
  1450. cat >> $DBH <<!
  1451. <B>Infiniband Adapter Tools:</B>
  1452. !
  1453. if [ $IBINSTALLED -eq 1 ]
  1454. IBTOOLS=0
  1455. then
  1456.    if [ -f /etc/sysconfig/iba/version_ofed ]
  1457.    then
  1458.       /bin/echo -n "OFED Version:                 " >> $DBH
  1459.       cat /etc/sysconfig/iba/version_ofed >> $DBH
  1460.       IBTOOLS=1
  1461.    fi
  1462.    if [ -f /etc/sysconfig/iba/version_wrapper ]
  1463.    then
  1464.       /bin/echo -n "Intel OFED+ Version:          " >> $DBH
  1465.       cat /etc/sysconfig/iba/version_wrapper >> $DBH
  1466.       IBTOOLS=1
  1467.    fi
  1468.    if [ -f /etc/sysconfig/iba/version_ff ]
  1469.    then
  1470.       /bin/echo -n "Intel FastFabric Version:     " >> $DBH
  1471.       cat /etc/sysconfig/iba/version_ff >> $DBH
  1472.       IBTOOLS=1
  1473.    fi
  1474.    if [ -f /etc/sysconfig/iba/version_fmtools ]
  1475.    then
  1476.       /bin/echo -n "Intel Fabric Manager Version: " >> $DBH
  1477.       cat /etc/sysconfig/iba/version_fmtools >> $DBH
  1478.       IBTOOLS=1
  1479.    fi
  1480.    if [ $IBTOOLS -eq 0 ]
  1481.    then
  1482.       /bin/echo "No Intel Infiniband Tools installed" >> $DBH
  1483.    fi
  1484. else
  1485.    /bin/echo "No Infiniband Adapters installed" >> $DBH
  1486. fi
  1487. /bin/echo >> $DBH
  1488.  
  1489. #
  1490. # Fibre Channel Adapter Information
  1491. #
  1492. cat >> $DBH <<!
  1493. <hr><a id="fcinfo"></a><b><a href="details.html#procinfo">Fibre Channel Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1494. !
  1495. if [ $FCINSTALLED -eq 1 ]
  1496. then
  1497.    DRV_MOD_VER=`/sbin/modinfo qla2xxx | grep "^version" | cut -d " " -f 9`
  1498.    TESTDIR=`ls $LOGDIR/proc/scsi/ 2>> $LOGDIR/script/misc_err.log |grep qla2`
  1499.    if [ -n "$TESTDIR" ]
  1500.    then
  1501.       PROCDIR=`ls $LOGDIR/proc/scsi/qla2*/[0-9]* 2>> $LOGDIR/script/misc_err.log`
  1502.       for FILE in $PROCDIR
  1503.       do
  1504.          grep Adapter $FILE|grep -v flag >> $DBH
  1505.          DRV_RUN_VER=`grep Driver $FILE | cut -d "," -f2 | sed "s/ //" | cut -d " " -f3`
  1506.          /bin/echo -n "Driver version $DRV_RUN_VER" >> $DBH
  1507.          if [ $DRV_MOD_VER = $DRV_RUN_VER -o ${DRV_MOD_VER}-fo = $DRV_RUN_VER ]
  1508.          then
  1509.             /bin/echo >> $DBH
  1510.          else
  1511.             /bin/echo "  <SPAN style='color:red'>Running driver version does not match installed driver version ($DRV_MOD_VER).  Update RAMDISK image.</SPAN>" >> $DBH
  1512.          fi
  1513. #         grep Driver $FILE | cut -d "," -f2 | sed "s/ //" >> $DBH
  1514.          grep Firmware $FILE | cut -d "," -f1 | sed "s/        //" >> $DBH
  1515.          grep Serial $FILE | cut -d "," -f2 | sed "s/ //" >> $DBH
  1516.          grep target $FILE|grep scsi >> $DBH
  1517.          /bin/echo >> $DBH
  1518.       done
  1519.    else
  1520.       TESTMOD=`grep "^qla2" $LOGDIR/modules/lsmod.out`
  1521.       if [ -n "$TESTMOD" ]
  1522.       then
  1523.          /bin/echo "No /proc information available for FC Driver" >> $DBH
  1524.          /bin/echo >> $DBH
  1525.          TESTDIR=`ls $LOGDIR/sys/class/scsi_host/ | grep host`
  1526.          if [ -n "$TESTDIR" ]
  1527.          then
  1528.             SYSDIR=`ls $LOGDIR/sys/class/scsi_host`
  1529.             for FILE in $SYSDIR
  1530.             do
  1531.                if [ -f $LOGDIR/sys/class/scsi_host/$FILE/driver_version ]
  1532.                then
  1533.                   ADAPTER=`cat $LOGDIR/sys/class/scsi_host/$FILE/model_name`
  1534.                   /bin/echo "Adapter Model: $ADAPTER" >> $DBH
  1535.                   DRV_RUN_VER=`cat $LOGDIR/sys/class/scsi_host/$FILE/driver_version`
  1536.                   /bin/echo -n "Driver Version: $DRV_RUN_VER" >> $DBH
  1537.                   if [ $DRV_MOD_VER = $DRV_RUN_VER -o ${DRV_MOD_VER}-fo = $DRV_RUN_VER ]
  1538.                   then
  1539.                      /bin/echo >> $DBH
  1540.                   else
  1541.                      /bin/echo "  <SPAN style='color:red'>Running driver version does not match installed driver version ($DRV_MOD_VER).  Update RAMDISK image.</SPAN>" >> $DBH
  1542.                   fi
  1543.                   FIRMWARE=`cat $LOGDIR/sys/class/scsi_host/$FILE/fw_version`
  1544.                   /bin/echo "Firmware Version: $FIRMWARE" >> $DBH
  1545.                   FLASHBIOS="$LOGDIR/sys/class/scsi_host/$FILE/optrom_bios_version"
  1546.                   if [ -f $FLASHBIOS ]; then /bin/echo "Flash BIOS Version: `cat $FLASHBIOS`" >> $DBH ; fi
  1547.                   FLASHEFI="$LOGDIR/sys/class/scsi_host/$FILE/optrom_efi_version"
  1548.                   if [ -f $FLASHEFI ]; then /bin/echo "Flash EFI Version: `cat $FLASHEFI`" >> $DBH ; fi
  1549.                   FLASHFCODE="$LOGDIR/sys/class/scsi_host/$FILE/optrom_fcode_version"
  1550.                   if [ -f $FLASHFCODE ]; then /bin/echo "Flash Fcode Version: `cat $FLASHFCODE`" >> $DBH ; fi
  1551.                   FLASHFW="$LOGDIR/sys/class/scsi_host/$FILE/optrom_fw_version"
  1552.                   if [ -f $FLASHFW ]; then /bin/echo "Flash Firmware Version: `cat $FLASHFW`" >> $DBH ; fi
  1553.                   MPIVER="$LOGDIR/sys/class/scsi_host/$FILE/mpi_version"
  1554.                   if [ -f $MPIVER ]; then /bin/echo "MPI Version: `cat $MPIVER`" >> $DBH ; fi
  1555.                   LINKSTATE="$LOGDIR/sys/class/scsi_host/$FILE/link_state"       # SLES uses different file than RHEL
  1556.                   if [ -f $LINKSTATE ]; then /bin/echo "Link State: `cat $LINKSTATE`" >> $DBH
  1557.                   else
  1558.                      LINKSTATE="$LOGDIR/sys/class/scsi_host/$FILE/state"
  1559.                      if [ -f $LINKSTATE ]; then /bin/echo "Link State: `cat $LINKSTATE`" >> $DBH ; fi
  1560.                   fi
  1561.                   NPIVVP="$LOGDIR/sys/class/scsi_host/$FILE/npiv_vports_inuse"
  1562.                   if [ -f $NPIVVP ]; then /bin/echo "NPIV VPorts: `cat $NPIVVP`" >> $DBH ; fi
  1563.                   VLANID="$LOGDIR/sys/class/scsi_host/$FILE/vlan_id"
  1564.                   if [ -f $VLANID ]; then /bin/echo "VLAN ID: `cat $VLANID`" >> $DBH ; fi
  1565.                   VNPORTMAC="$LOGDIR/sys/class/scsi_host/$FILE/vn_port_mac_address"
  1566.                   if [ -f $VNPORTMAC ]; then /bin/echo "VN Port MAC Address: `cat $VNPORTMAC`" >> $DBH ; fi
  1567.                   SERIAL=`cat $LOGDIR/sys/class/scsi_host/$FILE/serial_num`
  1568.                   /bin/echo "Serial #: $SERIAL" >> $DBH
  1569.                   /bin/echo >> $DBH
  1570.                fi
  1571.             done
  1572.          else
  1573.             /bin/echo "No /sys information available for FC Driver" >> $DBH
  1574.          fi
  1575.       else
  1576.          /bin/echo "Hardware present, but no FC drivers loaded" >> $DBH
  1577.          /bin/echo >> $DBH
  1578.       fi
  1579.    fi
  1580. else
  1581.    /bin/echo "No Fibre Channel Adapters detected in system" >> $DBH
  1582.    /bin/echo >> $DBH
  1583. fi
  1584.  
  1585. #
  1586. # iSCSI Adapter Information
  1587. #
  1588. cat >> $DBH <<!
  1589. <hr><a id="iscsiinfo"></a><b><a href="details.html#procinfo">iSCSI Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1590. !
  1591. if [ $ISCSIINSTALLED -eq 1 ]
  1592. then
  1593.    TESTDIR=`ls $LOGDIR/proc/scsi/ 2>> $LOGDIR/script/misc_err.log |grep qla4`
  1594.    if [ -n "$TESTDIR" ]
  1595.    then
  1596.       PROCDIR=`ls $LOGDIR/proc/scsi/qla4*/[0-9]* 2>> $LOGDIR/script/misc_err.log`
  1597.       for FILE in $PROCDIR
  1598.       do
  1599.          grep Adapter $FILE|grep -v flag >> $DBH
  1600.          grep Driver $FILE >> $DBH
  1601.          grep Firmware $FILE >> $DBH
  1602.          grep Serial $FILE >> $DBH
  1603.          grep target $FILE|grep scsi >> $DBH
  1604.          /bin/echo >> $DBH
  1605.       done
  1606.    else
  1607.       TESTMOD=`grep "^qla4" $LOGDIR/modules/lsmod.out`
  1608.       if [ -n "$TESTMOD" ]
  1609.       then
  1610.          /bin/echo "No /proc information available for iSCSI Driver" >> $DBH
  1611.          #Very slim pickings for qla4xxx information from /sys
  1612.          DRIVER="$LOGDIR/sys/module/qla4xxx/version"
  1613.          if [ -f $DRIVER ]
  1614.          then
  1615.             /bin/echo >> $DBH
  1616.             /bin/echo "iSCSI Driver Version: `cat $DRIVER`" >> $DBH
  1617.             /bin/echo "No additional /sys information available for iSCSI Driver" >> $DBH
  1618.             /bin/echo >> $DBH
  1619.          else
  1620.             /bin/echo "No /sys  information available for iSCSI Driver" >> $DBH
  1621.             /bin/echo >> $DBH
  1622.          fi
  1623.       else
  1624.          /bin/echo "Hardware present, but no iSCSI drivers loaded" >> $DBH
  1625.          /bin/echo >> $DBH
  1626.       fi
  1627.    fi
  1628. else
  1629.    /bin/echo "No iSCSI Adapters detected in system" >> $DBH
  1630.    /bin/echo >> $DBH
  1631. fi
  1632.  
  1633. #
  1634. # Ethernet Adapter Information
  1635. #
  1636. cat >> $DBH <<!
  1637. <hr><a id="etherinfo"></a><b><a href="details.html#procinfo">Ethernet Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1638. !
  1639. if [ $ETHERINSTALLED -eq 1 -o $IBINSTALLED -eq 1 ]
  1640. then
  1641.    QLETHERDRIVER=0
  1642.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  1643.    for file in $ETHDEVS
  1644.    do
  1645.       if [ -f $LOGDIR/network/ethtool-i.$file ]
  1646.       then
  1647.          QLETHERDRIVER=1    
  1648.          /bin/echo "Interface:        $file" >> $DBH
  1649.          /bin/echo -n "Driver Module:    " >> $DBH
  1650.          grep driver $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1651.          /bin/echo -n "Driver Version:   " >> $DBH
  1652.          grep "^version" $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1653.          /bin/echo -n "Firmware Version: " >> $DBH
  1654.          grep firmware $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1655.          /bin/echo -n "Link Detected:    " >> $DBH
  1656.          LINKSTATE=`grep Link $LOGDIR/network/ethtool.$file | cut -d " " -f3`
  1657.          if [ -n "$LINKSTATE" ]; then /bin/echo $LINKSTATE >> $DBH ; else /bin/echo >>$DBH ; fi
  1658.          /bin/echo -n "Interface State:  " >> $DBH
  1659.          grep UP $LOGDIR/network/ifconfig.$file > /dev/null
  1660.          if [ $? -eq 0 ]; then /bin/echo UP >> $DBH
  1661.          else /bin/echo DOWN >> $DBH
  1662.          fi
  1663.          /bin/echo -n "HW Address:       " >> $DBH
  1664.          grep HWaddr $LOGDIR/network/ifconfig.$file | cut -d "W" -f2|cut -d " " -f2 >> $DBH
  1665.          /bin/echo -n "Inet Address:     " >> $DBH
  1666.          INETADDR=`grep "inet addr" $LOGDIR/network/ifconfig.$file | cut -d " " -f12-16`
  1667.          if [ -n "$INETADDR" ]; then /bin/echo $INETADDR >> $DBH ; else /bin/echo "Undefined" >> $DBH; fi
  1668.          /bin/echo -n "Inet6 Address:    " >> $DBH
  1669.          INET6ADDR=`grep "inet6 addr" $LOGDIR/network/ifconfig.$file | cut -d " " -f12-14`
  1670.          if [ -n "$INET6ADDR" ]; then /bin/echo $INET6ADDR >> $DBH ; else /bin/echo "Undefined" >> $DBH ; fi
  1671.          /bin/echo >> $DBH
  1672.       fi
  1673.    done
  1674.    if [ $QLETHERDRIVER -eq 0 ]
  1675.    then
  1676.       /bin/echo "No IPoIB or Converged Network driver information available" >> $DBH
  1677.    fi
  1678. else
  1679.    /bin/echo "No IPoIB or Converged Network Adapter configuration detected in system" >> $DBH
  1680. fi
  1681.  
  1682. /bin/echo >> $DBH
  1683.  
  1684. #
  1685. # Infiniband Adapter and Fabric Information
  1686. #
  1687. cat >> $DBH <<!
  1688. <hr><a id="ibinfo"></a><b><a href="details.html#ibinfo">Infiniband Adapter and Fabric Information:</a></b>     <a href="#top">top</a><hr> 
  1689. !
  1690. if [ $IBINSTALLED -eq 1 ]
  1691. then
  1692.    cd $LOGDIR/infiniband
  1693.    if [ -f ipath_control.out ]
  1694.    then
  1695.       cat ipath_control.out >> $DBH
  1696.    fi
  1697.    if [ -f ibv_devinfo.out ]
  1698.    then
  1699.       cat ibv_devinfo.out >> $DBH
  1700.    elif [ -f ibstat.out ]
  1701.    then
  1702.       cat ibstat.out >> $DBH
  1703.    else
  1704.       /bin/echo "No Infiniband port information available" >> $DBH
  1705.    fi
  1706.    /bin/echo >> $DBH
  1707.  
  1708.    if [ -f fabric_info.out ]
  1709.    then
  1710.       cat fabric_info.out >> $DBH
  1711.    elif [ -f sminfo.out -a -f ibnodes.out -a -f saquery_links.out -a -f iblinkinfo.out ]
  1712.    then
  1713.       /bin/echo "Fabric Information:" >> $DBH
  1714.       SMINFO=`grep guid sminfo.out 2>> $LOGDIR/script/misc_err.log`
  1715.       if [ $? -eq 0 ]
  1716.       then
  1717.          /bin/echo $SMINFO >> $DBH
  1718.          grep EndPortLid sminfo.out >> $DBH
  1719.       else
  1720.          /bin/echo "SM: No SM information available" >> $DBH
  1721.       fi
  1722.       /bin/echo "Number of CAs:" `grep Adapter saquery.out |wc -l` >> $DBH
  1723.       /bin/echo "Number of Switch Chips:" `grep Switch saquery.out |wc -l` >> $DBH
  1724.       /bin/echo "Number of Links:" $(($(grep LinkRecord saquery_links.out |wc -l) / 2)) >> $DBH
  1725.       /bin/echo "Number of 1x Ports:" `grep 1X iblinkinfo.out | wc -l` >> $DBH
  1726.    else
  1727.       /bin/echo "Insufficient data to report fabric information" >> $DBH
  1728.    fi
  1729.    cd $LOGDIR
  1730. else
  1731.    /bin/echo "No Infiniband Adapters detected in system" >> $DBH
  1732. fi
  1733. /bin/echo >> $DBH
  1734.  
  1735. #
  1736. # Fibre Channel Message Logs
  1737. #
  1738. cat >> $DBH <<!
  1739. <hr><a id="fclogs"></a><b><a href="details.html#loginfo">Fibre Channel Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1740. !
  1741. if [ -f $LOGDIR/logs/vmkernel ]
  1742. then
  1743.    grep qla2 $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1744. fi
  1745. grep qla2 /var/log/messages |tail -50 >> $DBH
  1746. /bin/echo >> $DBH
  1747.  
  1748. #
  1749. # iSCSI Message Logs
  1750. #
  1751. cat >> $DBH <<!
  1752. <hr><a id="iscsilogs"></a><b><a href="details.html#loginfo">iSCSI Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1753. !
  1754. if [ -f $LOGDIR/logs/vmkernel ]
  1755. then
  1756.    grep qla4 $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1757. fi
  1758. grep qla4 /var/log/messages |tail -50 >> $DBH
  1759. /bin/echo >> $DBH
  1760.  
  1761. #
  1762. # Ethernet Message Logs
  1763. #
  1764. cat >> $DBH <<!
  1765. <hr><a id="etherlogs"></a><b><a href="details.html#loginfo">Ethernet Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1766. !
  1767. if [ -f $LOGDIR/logs/vmkernel ]
  1768. then
  1769.    egrep "netxen_nic|nx_nic|qla3|qla2xip|qlge|qlcnic|ixgbe" $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1770. fi
  1771. egrep "netxen_nic|nx_nic|qla3|qla2xip|qlge|qlcnic|ixgbe" /var/log/messages |tail -50 >> $DBH
  1772. /bin/echo >> $DBH
  1773.  
  1774. #
  1775. # Infiniband Message Logs
  1776. #
  1777. cat >> $DBH <<!
  1778. <hr><a id="iblogs"></a><b><a href="details.html#loginfo">Infiniband Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1779. !
  1780. egrep "infinipath|ipath_|_ipath|ib_qib|ib_mthca|mlx" /var/log/messages |tail -50 >> $DBH
  1781. /bin/echo >> $DBH
  1782.  
  1783. #
  1784. # Wrap it up
  1785. #
  1786. # Temporary cleanup of $LOGDIR/sys to avoid extraction errors
  1787. cd $LOGDIR
  1788. if test -d ./sys
  1789. then
  1790.    tar czf $LOGDIR/OS/sys_files.tgz ./sys
  1791.    rm -rf $LOGDIR/sys
  1792. fi
  1793. # Now back to our regularly scheduled program
  1794.  
  1795. cat >> $DBH <<!
  1796. <hr><a id="bottom"></a> <a href="#top">top</a><hr> 
  1797. <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
  1798. </pre> 
  1799. </font> 
  1800. </body>
  1801. !
  1802.  
  1803. #####################################################################
  1804. # Place holder below for details.sh
  1805. #####################################################################
  1806. # Start of details.sh
  1807. #####################################################################
  1808. # Post-process script output into pdeudo-meaningful html
  1809. #####################################################################
  1810.  
  1811. cd $LOGDIR
  1812.  
  1813. #####################################################################
  1814. # Create details.html for the script output
  1815. #####################################################################
  1816. DTL=$LOGDIR/details.html
  1817. #
  1818. # Header
  1819. #
  1820. cat > $DTL <<!
  1821. <head><title>Intel Infiniband Information Gathering Script - Details</title></head> 
  1822. <body> 
  1823. <font face="Courier New"> 
  1824.  <a id="top"></a> 
  1825. <div align="center"> 
  1826. <b>Intel Infiniband Information Gathering Script Details</b><br> 
  1827. !
  1828. /bin/echo `date` >> $DTL
  1829. /bin/echo "<hr><hr></div>" >> $DTL
  1830.  
  1831. #
  1832. # Index
  1833. #
  1834. cat >> $DTL <<!
  1835. <pre>
  1836. <b>Index:</b><hr>
  1837. <a href="#about">About</a>
  1838. <a href="#osfiles">OS Information Files</a>
  1839. <a href="#etcfiles">/etc Information</a>
  1840. <a href="#modules">Module Information</a>
  1841. <a href="#procinfo">/proc Information</a>
  1842. <a href="#etherinfo">Ethernet Information</a>
  1843. <a href="#Mgmt_tools">Management Tools Information</a>
  1844. <a href="#ibinfo">Infiniband Information</a>
  1845. <a href="#loginfo">System Log Information</a>
  1846. <a href="#miscinfo">Miscellaneous Information</a><br>
  1847. !
  1848.  
  1849. #
  1850. # About
  1851. #
  1852. cat >> $DTL <<!
  1853. <hr><a id="about"></a><b><a href="details.html">About:</a></b>     <a href="#top">top</a><hr>
  1854. This details file will walk through the information gathered by the information gathering script.
  1855.  
  1856. <a href="dashboard.html">dashboard.html</a>
  1857. This file is the starting place for all your basic troubleshooting needs.  It displays an overview
  1858. of the server, reports Adapter driver / firmware versions, and identifies installed management applications.
  1859.  
  1860. <a href="details.html">details.html</a>
  1861. This file.
  1862.  
  1863. <a href="script/revisionhistory.txt">revisionhistory.txt</a>
  1864. This file contains the revision history for the Linux Information Gathering script.
  1865.  
  1866. !
  1867.  
  1868. #
  1869. # OS Information Files
  1870. #
  1871. cat >> $DTL <<!
  1872. <hr><a id="osfiles"></a><b><a href="details.html">OS Information Files:</a></b>     <a href="#top">top</a><hr>
  1873. !
  1874. OS_FILES=`ls OS/*release OS/*version OS/uname 2>> $LOGDIR/script/misc_err.log`
  1875. for FILE in $OS_FILES
  1876. do
  1877.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1878. done
  1879. /bin/echo >> $DTL
  1880. /bin/echo "The files listed above include the OS release version and the running kernel version (uname)." >> $DTL
  1881. /bin/echo >> $DTL
  1882. OS_FILES=`ls OS/rpm*  2>> $LOGDIR/script/misc_err.log`
  1883. for FILE in $OS_FILES
  1884. do
  1885.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1886. done
  1887. /bin/echo >> $DTL
  1888. /bin/echo "The file(s) above include the installed RPMs." >> $DTL
  1889. /bin/echo >> $DTL
  1890. OS_FILES=`ls OS/ls_* OS/sys_files.tgz  2>> $LOGDIR/script/misc_err.log`
  1891. for FILE in $OS_FILES
  1892. do
  1893.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1894. done
  1895. /bin/echo >> $DTL
  1896. /bin/echo "The files above include the output of ls -alRF for /sys and /var/crash as well as a tar/zip" >> $DTL
  1897. /bin/echo "of the collected files from /sys." >> $DTL
  1898. /bin/echo >> $DTL
  1899.  
  1900. #
  1901. # Boot files
  1902. #
  1903. BOOTFILES=`ls boot`
  1904. for FILE in $BOOTFILES
  1905. do
  1906.    /bin/echo -n "<a href=\"boot/$FILE\">boot/$FILE</a>    " >> $DTL
  1907. done
  1908. /bin/echo >> $DTL
  1909. /bin/echo "The above files include boot configuration files and a list of files in the /boot directory." >> $DTL
  1910. /bin/echo >> $DTL
  1911.  
  1912. #
  1913. # /etc Information
  1914. #
  1915. cat >> $DTL <<!
  1916. <hr><a id="etcfiles"></a><b><a href="details.html">/etc Information:</a></b>     <a href="#top">top</a><hr>
  1917. !
  1918. ETC_FILES="etc/modprobe.conf etc/modprobe.conf.local etc/modprobe.conf.dist etc/modules.conf etc/modules.conf.local etc/sysconfig/kernel"
  1919. for FILE in $ETC_FILES
  1920. do
  1921.    if [ -f $FILE ]
  1922.    then
  1923.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1924.    fi
  1925. done
  1926. /bin/echo >> $DTL
  1927. /bin/echo "The files above are used to determine the order modules are loaded, specify optional module parameters," >> $DTL
  1928. /bin/echo "and determine which modules are included in the ramdisk image during bootup (SLES uses /etc/sysconfig/kernel)." >> $DTL
  1929. /bin/echo >> $DTL
  1930.  
  1931. ETC_FILES="etc/qla2xxx.conf etc/qla2300.conf etc/qla2200.conf etc/hba.conf"
  1932. ATLEASTONEFILE=0
  1933. for FILE in $ETC_FILES
  1934. do
  1935.    if [ -f $FILE ]
  1936.    then
  1937.       ATLEASTONEFILE=1
  1938.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1939.    fi
  1940. done
  1941. if [ $ATLEASTONEFILE -eq 1 ]
  1942. then
  1943.    /bin/echo >> $DTL
  1944.    /bin/echo "The file qla*.conf, if present, is used to store an ascii representation of persistent binding and" >> $DTL
  1945.    /bin/echo "LUN masking as defined by SANsurfer or scli.  The file hba.conf, if present, points to the proper " >> $DTL
  1946.    /bin/echo "dynamic loadable library for the SNIA API (HBAAPI)." >> $DTL
  1947.    /bin/echo >> $DTL
  1948. fi
  1949.  
  1950. ETC_FILES="etc/fstab etc/mtab"
  1951. for FILE in $ETC_FILES
  1952. do
  1953.    if [ -f $FILE ]
  1954.    then
  1955.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1956.    fi
  1957. done
  1958. /bin/echo >> $DTL
  1959. /bin/echo "The files above identify static and dynamic filesystem mount information." >> $DTL
  1960. /bin/echo >> $DTL
  1961.  
  1962. /bin/echo -n "<a href=\"etc/ls_etcrcd.out\">etc/ls_etcrcd.out</a>    " >> $DTL
  1963. /bin/echo >> $DTL
  1964. /bin/echo "Directory listing of all startup files executed at various runlevels at boot/shutdown" >> $DTL
  1965. /bin/echo >> $DTL
  1966.  
  1967. if [ -f etc/sysctl.conf ]
  1968. then
  1969.    /bin/echo -n "<a href=\"etc/sysctl.conf\">etc/sysctl.conf</a>    " >> $DTL
  1970.    /bin/echo >> $DTL
  1971.    /bin/echo "Kernel tuning configuration file." >> $DTL
  1972.    /bin/echo >> $DTL
  1973. fi
  1974.  
  1975. if [ -f etc/sysconfig/hwconf ]
  1976. then
  1977.    /bin/echo -n "<a href=\"etc/sysconfig/hwconf\">etc/sysconfig/hwconf</a>    " >> $DTL
  1978.    /bin/echo >> $DTL
  1979.    /bin/echo "List of installed hardware including PCI bus, vendor and driver module information." >> $DTL
  1980.    /bin/echo >> $DTL
  1981. fi
  1982. # DG: Major rework needed to list and describe files that are IB-specific
  1983. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  1984. then
  1985.    /bin/echo "Files listed below are additional files gathered for Infiniband troubleshooting." >> $DTL
  1986.    /bin/echo >> $DTL
  1987. fi
  1988.  
  1989. #
  1990. # Module Information
  1991. #
  1992. cat >> $DTL <<!
  1993. <hr><a id="modules"></a><b><a href="details.html">Module Information:</a></b>     <a href="#top">top</a><hr>
  1994. !
  1995. MODFILES="modules/ls_libmodules.out modules/lsmod.out modules/modinfo.out modules/qisioctl.out modules/qioctlmod.out"
  1996. for FILE in $MODFILES
  1997. do
  1998.    if test -f $FILE
  1999.    then
  2000.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2001.    fi
  2002. done
  2003. /bin/echo >> $DTL
  2004. /bin/echo "The file ls_libmodules.out is a list of all modules for the current running kernel.  The file " >> $DTL
  2005. /bin/echo "lsmod.out is a list of all currently loaded modules.  The file modinfo.out is a list of modinfo" >> $DTL
  2006. /bin/echo "output of all FC, iSCSI, CNA and Infiniband modules in the current running kernel." >> $DTL
  2007. /bin/echo >> $DTL
  2008.  
  2009. #
  2010. # /proc Information
  2011. #
  2012. cat >> $DTL <<!
  2013. <hr><a id="procinfo"></a><b><a href="details.html">/proc Information:</a></b>     <a href="#top">top</a><hr>
  2014. !
  2015. PROCFILES=`ls proc`
  2016. for FILE in $PROCFILES
  2017. do
  2018.    if test -f proc/$FILE
  2019.    then
  2020.       /bin/echo -n "<a href=\"proc/$FILE\">proc/$FILE</a>    " >> $DTL
  2021.    fi
  2022. done
  2023. /bin/echo >> $DTL
  2024. /bin/echo "These files include CPU information, running modules, and (optionally) pci information as     " >> $DTL
  2025. /bin/echo "reported in the /proc filesystem.                                                             " >> $DTL
  2026. /bin/echo >> $DTL
  2027.  
  2028. if test -d proc/scsi
  2029. then
  2030.    if test -f proc/scsi/scsi
  2031.    then
  2032.       /bin/echo "<a href=\"proc/scsi/scsi\">proc/scsi/scsi</a>    " >> $DTL
  2033.       /bin/echo "This is a list of all devices scanned by the SCSI module as reported in the /proc filesystem. " >> $DTL
  2034.       /bin/echo >> $DTL
  2035.    fi
  2036.    TESTDIR=`ls proc/scsi/|grep qla2`
  2037.    if test -n "$TESTDIR"
  2038.    then
  2039.       for DIR in $TESTDIR
  2040.       do
  2041.          QLAFILE=`ls proc/scsi/$DIR/[0-9]*`
  2042.          for FILE in $QLAFILE
  2043.          do
  2044.             /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2045.          done
  2046.          /bin/echo >> $DTL
  2047.       done
  2048.       /bin/echo "FC driver instance files." >>$DTL
  2049.       /bin/echo >> $DTL
  2050.    else
  2051.       /bin/echo "No FC driver info found in /proc filesystem." >> $DTL
  2052.       /bin/echo >> $DTL
  2053.    fi
  2054.    TESTDIR=`ls proc/scsi/|grep qla4`
  2055.    if test -n "$TESTDIR"
  2056.    then
  2057.       for DIR in $TESTDIR
  2058.       do
  2059.          QLAFILE=`ls proc/scsi/$DIR/[0-9]*`
  2060.          for FILE in $QLAFILE
  2061.          do
  2062.             /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2063.          done
  2064.          /bin/echo >> $DTL
  2065.       done
  2066.       /bin/echo "iSCSI driver instance files." >>$DTL
  2067.       /bin/echo >> $DTL
  2068.    else
  2069.       /bin/echo "No iSCSI driver info found in /proc filesystem." >> $DTL
  2070.       /bin/echo >> $DTL
  2071.    fi
  2072. else
  2073.    /bin/echo "No SCSI info found in /proc filesystem." >> $DTL
  2074.    /bin/echo >> $DTL
  2075. fi
  2076.  
  2077. #
  2078. # Ethernet Information
  2079. #
  2080. cat >> $DTL <<!
  2081. <hr><a id="etherinfo"></a><b><a href="details.html">Ethernet Information:</a></b>     <a href="#top">top</a><hr>
  2082. !
  2083. /bin/echo -n "<a href=\"network/ifconfig.out\">network/ifconfig.out</a>  " >> $DTL
  2084. /bin/echo -n "<a href=\"network/netstat.out\">network/netstat.out</a>  " >> $DTL
  2085. /bin/echo "<a href=\"network/iptables.out\">network/iptables.out</a>" >> $DTL
  2086. /bin/echo "These files include network interface configurations and interface routing information." >> $DTL
  2087. /bin/echo >> $DTL
  2088. if test $ETHERINSTALLED -eq 1
  2089. then
  2090.    QLETHERDRIVER=0
  2091.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  2092.    for file in $ETHDEVS
  2093.    do
  2094.       if test -f $LOGDIR/network/ethtool-i.$file
  2095.       then
  2096.          QLETHERDRIVER=1    
  2097.          /bin/echo -n "<a href=\"network/ifconfig.$file\">network/ifconfig.$file</a>  " >> $DTL
  2098.          /bin/echo -n "<a href=\"network/ethtool-i.$file\">network/ethtool-i.$file</a>  " >> $DTL
  2099.          /bin/echo -n "<a href=\"network/ethtool-k.$file\">network/ethtool-k.$file</a>  " >> $DTL
  2100.          /bin/echo "<a href=\"network/ethtool.$file\">network/ethtool.$file</a>" >> $DTL
  2101.       fi
  2102.    done
  2103.    if test $QLETHERDRIVER -eq 1
  2104.    then
  2105.       /bin/echo "These files include details about specific FC/iSCSI/CNA and IPoIB network interfaces." >> $DTL
  2106.    else
  2107.       /bin/echo "No FC/iSCSI/CNA/IPoIB ethernet driver information available" >> $DTL
  2108.    fi
  2109. else
  2110.    /bin/echo "No IPoIB or Converged Network Adapters detected in system" >> $DTL
  2111. fi 
  2112. /bin/echo >> $DTL
  2113.  
  2114. #
  2115. # Management Tools Info
  2116. #
  2117. cat >> $DTL <<!
  2118. <hr><a id="Mgmt_tools"></a><b><a href="details.html">Management Tools Information:</a></b>     <a href="#top">top</a><hr>
  2119. !
  2120. SMSINSTALL=`ls Mgmt_tools/sansurfer*`
  2121. for FILE in $SMSINSTALL
  2122. do
  2123.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2124. done
  2125. /bin/echo >> $DTL
  2126. /bin/echo "Management GUI installation status and version information" >> $DTL
  2127. /bin/echo >> $DTL
  2128.  
  2129. SMSINSTALL=`ls Mgmt_tools/*scli_install*`
  2130. for FILE in $SMSINSTALL
  2131. do
  2132.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2133. done
  2134. /bin/echo >> $DTL
  2135. /bin/echo "Management CLI installation status and version information" >> $DTL
  2136. /bin/echo >> $DTL
  2137.  
  2138. SMSLISTS=`ls Mgmt_tools/ls_*`
  2139. for FILE in $SMSLISTS
  2140. do
  2141.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2142. done
  2143. /bin/echo >> $DTL
  2144. /bin/echo "Directory listing of default Management GUI/CLI locations" >> $DTL
  2145. /bin/echo >> $DTL
  2146.  
  2147. if test -f Mgmt_tools/scli.out
  2148. then
  2149.    /bin/echo -n "<a href=\"Mgmt_tools/scli.out\">Mgmt_tools/scli.out</a>    " >> $DTL
  2150.    /bin/echo " CLI output for all FC Adapters." >> $DTL
  2151.    /bin/echo >> $DTL
  2152. fi
  2153. if test -f Mgmt_tools/iscli.out
  2154. then
  2155.    /bin/echo -n "<a href=\"Mgmt_tools/iscli.out\">Mgmt_tools/iscli.out</a>    " >> $DTL
  2156.    /bin/echo " CLI output for all iSCSI Adapters." >> $DTL
  2157.    /bin/echo >> $DTL
  2158. fi
  2159.  
  2160. #
  2161. # System Log Information
  2162. #
  2163. cat >> $DTL <<!
  2164. <hr><a id="loginfo"></a><b><a href="details.html">System Log Information:</a></b>     <a href="#top">top</a><hr>
  2165. !
  2166. BOOTFILES=`ls logs/boot*`
  2167. for FILE in $BOOTFILES
  2168. do
  2169.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2170. done
  2171. /bin/echo >> $DTL
  2172. /bin/echo "Boot logs" >> $DTL
  2173. /bin/echo >> $DTL
  2174. MSGFILES=`ls logs/message* 2>> $LOGDIR/script/misc_err.log`
  2175. for FILE in $MSGFILES
  2176. do
  2177.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2178. done
  2179. /bin/echo >> $DTL
  2180. /bin/echo "System messages files" >> $DTL
  2181. /bin/echo >> $DTL
  2182. MSGFILES=`ls logs/* | grep -v "logs/message" | grep -v boot`
  2183. for FILE in $MSGFILES
  2184. do
  2185.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2186. done
  2187. /bin/echo >> $DTL
  2188. /bin/echo "Other log files" >> $DTL
  2189. /bin/echo >> $DTL
  2190.  
  2191. #
  2192. # Misc Information
  2193. #
  2194. cat >> $DTL <<!
  2195. <hr><a id="miscinfo"></a><b><a href="details.html">Miscellaneous Information:</a></b>     <a href="#top">top</a><hr>
  2196. !
  2197. /bin/echo -n "<a href=\"misc/fdisk.out\">misc/fdisk.out</a>     " >> $DTL
  2198. /bin/echo "<a href=\"misc/df.out\">misc/df.out</a>" >> $DTL
  2199. /bin/echo "List of devices recognized by the OS SCSI disk module and list of mounted disks." >> $DTL
  2200. /bin/echo >> $DTL
  2201. /bin/echo -n "<a href=\"misc/chkconfig.out\">misc/chkconfig.out</a>   " >> $DTL
  2202. /bin/echo "System runlevel configuration." >> $DTL
  2203. /bin/echo -n "<a href=\"misc/gcc.out\">misc/gcc.out</a>         " >> $DTL
  2204. /bin/echo "List of installed gcc binaries and version information." >> $DTL
  2205. /bin/echo -n "<a href=\"misc/lspci.out\">misc/lspci.out</a>       " >> $DTL
  2206. /bin/echo "List of hardware installed as recognized by <i>lspci -v</i>" >> $DTL
  2207. /bin/echo -n "<a href=\"misc/dmidecode.out\">misc/dmidecode.out</a>   " >> $DTL
  2208. /bin/echo "Lists Motherboard and BIOS information as recognized by <i>dmidecode</i>" >> $DTL
  2209. /bin/echo -n "<a href=\"misc/ps.out\">misc/ps.out</a>          " >> $DTL
  2210. /bin/echo "List of all running processes." >> $DTL
  2211. /bin/echo -n "<a href=\"misc/uptime.out\">misc/uptime.out</a>      " >> $DTL
  2212. /bin/echo "System uptime." >> $DTL
  2213. /bin/echo -n "<a href=\"misc/ls_usrlib.out\">misc/ls_usrlib.out</a>   " >> $DTL
  2214. /bin/echo "32-bit Loadable libraries" >> $DTL
  2215. if test -f misc/ls_usrlib64.out
  2216. then
  2217.    /bin/echo -n "<a href=\"misc/ls_usrlib64.out\">misc/ls_usrlib64.out</a> " >> $DTL
  2218.    /bin/echo "64-bit Loadable libraries" >> $DTL
  2219. fi
  2220. /bin/echo >> $DTL
  2221. OTHERMISCFILES="misc/lsscsi.out misc/lsscsi_verbose.out misc/sysctl.out misc/vmstat.out misc/free.out misc/lsof.out"
  2222. for FILE in $OTHERMISCFILES
  2223. do
  2224.    if test -f $FILE
  2225.    then
  2226.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2227.    fi
  2228. done
  2229. /bin/echo >> $DTL
  2230. /bin/echo "Other miscellaneous files listing various system resources." >> $DTL
  2231. /bin/echo >> $DTL
  2232.  
  2233. #
  2234. # Wrap it up
  2235. #
  2236. cat >> $DTL <<!
  2237. <hr><a id="bottom"></a> <a href="#top">top</a><hr> 
  2238. <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
  2239. </pre> 
  2240. </font> 
  2241. </body>
  2242. !
  2243.  
  2244. #####################################################################
  2245. # Create compressed archive of results ... then clean up
  2246. #####################################################################
  2247. /bin/echo -n "Creating compressed archive and cleaning up ... "
  2248.  
  2249. cd /tmp
  2250. tar czf $LOGNAME.tgz ./$LOGNAME
  2251. if test $? -ne 0 
  2252. then
  2253.    /bin/echo "*!*! Error while archiving the support data."
  2254.    /bin/echo "     Please tar and compress $LOGDIR by hand"
  2255.    /bin/echo "     and Email it to ibsupport@intel.com"
  2256. else
  2257.    rm -rf /tmp/$LOGNAME
  2258.    /bin/echo "done"
  2259.    /bin/echo
  2260.    /bin/echo "Please attach the file: $LOGDIR.tgz to your case at http://www.intel.com/infiniband"
  2261. fi
  2262.  
  2263. #####################################################################
  2264. # All done ...
  2265. #####################################################################
  2266. exit
  2267.