-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfirmware_report.sh
82 lines (69 loc) · 3.74 KB
/
firmware_report.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
#
# Firmware Report version 1
# Developed by: .,Hendrawan - hendrawan.hendrawan@hpe.com
#
export LANG=C
# set -x
# set -o verbose
if [ -d "/tmp/firmware_report" ]
then
echo " "
rm -rf /tmp/firmware_report
mkdir /tmp/firmware_report
else
mkdir /tmp/firmware_report
fi
cd /tmp/firmware_report && mkdir -p firmware/networking firmware/hba firmware/sa firmware/hardware firmware/kernel
# echo -e "Check sysfsutils package installed..."
# PACKAGE=sysfsutils
# if rpm -qa | grep -q $PACKAGE; then echo "sysfsutils package installed, continue... "; else echo "$PACKAGE needs to be installed, exit"; exit; fi
echo -e "Gathering system information..."
date &> date
hostname &> hostname
uname -a &> uname
cat /etc/redhat-release &> redhat-release
uptime &> uptime
echo -e "Gathering application information..."
rpm -qa --last &> rpm-qa
echo -e "Gathering network information..."
ifconfig &> ./firmware/networking/ifconfig
ip a &> ./firmware/networking/ip_a
for i in $(ls /etc/sysconfig/network-scripts/{ifcfg,route,rule}-*) ; do echo -e "$i\n----------------------------------"; cat $i;echo " "; done &> ./firmware/networking/ifcfg-files
for i in $(ifconfig | grep "^[a-z]" | cut -f 1 -d " "); do echo -e "$i\n-------------------------" ; ethtool $i; ethtool -k $i; ethtool -S $i; ethtool -i $i;echo -e "\n" ; done &> ./firmware/networking/ethtool.out
cp /etc/sysconfig/network ./firmware/networking/ 2>> error_log
cp /etc/sysconfig/network-scripts/ifcfg-* ./firmware/networking/ 2>> error_log
cp /etc/sysconfig/network-scripts/route-* ./firmware/networking/ 2>> error_log
cat /proc/net/bonding/bond* &> ./firmware/networking/proc-net-bonding-bond 2>> error_log
ip route show table all &> ./firmware/networking/ip_route_show_table_all
ip link &> ./firmware/networking/ip_link
echo -e "Gathering kernel information..."
lsmod &> ./firmware/kernel/lsmod
for MOD in `lsmod | grep -v "Used by"| awk '{ print $1 }'`; do modinfo $MOD; done >> ./firmware/kernel/modinfo
cp -a /var/log/dmesg ./firmware/kernel/dmesg 2>> error_log
dmesg &> ./firmware/kernel/dmesg_now
echo -e "Gathering hardware information..."
dmidecode &> ./firmware/hardware/dmidecode
lspci -k &> ./firmware/hardware/lspci_-k
lspci -vvv &> ./firmware/hardware/lspci_-vvv
lspci &> ./firmware/hardware/lspci
cat /proc/meminfo &> ./firmware/hardware/meminfo
cat /proc/cpuinfo &> ./firmware/hardware/cpuinfo
dmidecode -t 4 &> ./firmware/hardware/dmidecode_cpu
echo -e "Gathering BIOS information..."
dmidecode -t bios &> ./firmware/hardware/dmidecode_-t_bios
echo -e "Gathering Smart Array information..."
lspci -vnn | grep "RAID bus controller" &> ./firmware/sa/lscpi_smart_array
ls -l /sys/class/scsi_host/host*/firmware_revision &> ./firmware/sa/ls_-l_scsi_host_firmware_revision 2>> error_log
cat /sys/class/scsi_host/host*/firmware_revision &> ./firmware/sa/cat_scsi_host_firmware_revision 2>> error_log
modinfo hpsa &> ./firmware/sa/modinfo_hpsa 2>> error_log
cat /proc/driver/cciss/cciss0 &> ./firmware/sa/cciss_firmware_version 2>> error_log
modinfo cciss| head -5 &> ./firmware/sa/cciss_driver_version 2>> error_log
echo -e "Gathering HBA information..."
for FC in $( ls /sys/class/fc_host ); do systool -c fc_host -v -d $FC >> ./firmware/hba/systool_-v; done 2>> error_log
for FC in $( ls /sys/class/fc_host ); do echo $FC; cat /sys/class/fc_host/$FC/symbolic_name; done >> ./firmware/hba/ls_fc_host 2>> error_log
for FC in $( ls /sys/class/scsi_host ); do echo $FC; cat /sys/class/scsi_host/$FC/{model_name,driver_version,fw_version,optrom*}; echo -e "\n"; done >> ./firmware/hba/ls_qlogic_scsi_host 2>> error_log
modinfo qla2xxx | grep -v firmware | head -5 &> ./firmware/hba/modinfo_qla2xxx_driver 2>> error_log
echo -e "Compressing files..."
tar -cjf /tmp/`hostname`_firmware_report_`date +%F`.tar.bz2 ./
echo -e "Script complete."