-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathhwinfo
More file actions
executable file
·126 lines (115 loc) · 5.57 KB
/
hwinfo
File metadata and controls
executable file
·126 lines (115 loc) · 5.57 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#/bin/bash
#
set -e
pname=$(dmidecode --string system-product-name|awk '{print $2}')
if [[ $pname =~ R7[0-9a-z]{1,} ]]; then
cap="2U"
else
cap="1U"
fi
cpu_model=$( dmidecode -t 4 | awk '/Version:/ {print $5}'|tail -1)
cpu_core=$(dmidecode -t 4 | awk '/Core Count:/ {print $3}'|tail -1)
cpu_thread=$(dmidecode -t 4 | awk '/Thread Count:/ {print $3}'|tail -1)
cpu_count=$(dmidecode -t 4 | grep -c 'Processor Information')
mem_vendor=$(dmidecode -t memory|grep 'Part Number'|grep -v 'ModulePartNumber'|sort|uniq|awk -F':' '/: [a-zA-Z0-9]/ {gsub(/[[:blank:]]*/,"",$2);print $2}'|sed 'N;s/\n/,/')
mem_size=$(dmidecode -t 17 | grep Size: | grep -v 'No Module Installed'|tail -1|awk '{print $2/1024}')G
mem_count=$(dmidecode -t 17 | grep 'Size:' | grep -vc 'Size: No Module Installed')
get_disk_name() {
local disk_mp="$1"
local disk_name
disk_name=$(df -P | grep "$disk_mp"|awk '{print $1}')
if [[ $disk_name =~ /dev/mapper/* ]]; then
vgname=$(echo $disk_name|awk -F'/' '{print $4}'|awk -F'-' '{print $1}')
disk_name=$(echo $(pvs|awk "/$vgname/ {print \$1}")|sed 's/[0-9]//')
else
disk_name=$(echo $disk_name|sed 's/[0-9]//')
fi
echo $disk_name
}
get_disk_info() {
local disk_name="$1"
local vgname controllers c disk_raid disk_c disk_vdisk disk_type pdisk_size pdisk_num
controllers=$(omreport storage controller -fmt ssv|grep '^[0-9]'|awk -F';' '{print $1}')
for c in $controllers; do
disk_raid=$(omreport storage vdisk controller=$c -fmt ssv|grep "$disk_name"|awk -F';' '{print $7}')
if [[ -n $disk_raid ]]; then
disk_c=$c
disk_vdisk=$(omreport storage vdisk controller=$disk_c -fmt ssv|grep "$disk_name"|awk -F';' '{print $1}')
break
fi
done
disk_basename=$(basename $disk_name)
if [[ -n $disk_raid ]]; then
disk_type=$(omreport storage vdisk controller=$disk_c vdisk=$disk_vdisk -fmt ssv|grep "$disk_name"|awk -F';' '{print $12}')
pdisk_size=$(omreport storage pdisk controller=$disk_c vdisk=$disk_vdisk -fmt ssv|grep '[0-9]:[0-9]'|egrep -o "[0-9.,]{1,} GB"|head -1|sed 's/,//'|awk -F'.' '{print $1}')
pdisk_num=$(omreport storage pdisk controller=$disk_c vdisk=$disk_vdisk -fmt ssv|grep -c '[0-9]:[0-9]')
else
disk_raid="noraid"
disk_id=$(ls -l /dev/disk/by-path/|grep -w "../../$disk_basename"|awk '{print $9}'|awk -F'0x' '{print $2}'|awk -F'-' '{print $1}')
disk_type=$(omreport storage pdisk controller=0 -fmt ssv|grep -i $disk_id|awk -F';' '{print $6}')
pdisk_size=$(omreport storage pdisk controller=0 -fmt ssv|grep -i $disk_id|egrep -o "[0-9.,]{1,} GB"|head -1|sed 's/,//'|awk -F'.' '{print $1}')
pdisk_num=1
fi
if [[ $pdisk_size -ge 2700 ]]; then
pdisk_size=3000G
elif [[ $pdisk_size -ge 1800 ]]; then
pdisk_size=2000G
elif [[ $pdisk_size -ge 900 ]]; then
pdisk_size=1000G
elif [[ $pdisk_size -ge 550 ]]; then
pdisk_size=600G
elif [[ $pdisk_size -ge 270 ]]; then
pdisk_size=300G
else
pdisk_size=${pdisk_size}G
fi
echo "$disk_type;$pdisk_size;$pdisk_num;$disk_raid"
}
sys_disk_name=$(get_disk_name "/$")
sys_disk_info=$(get_disk_info "$sys_disk_name")
sys_disk_type=$(echo $sys_disk_info|awk -F';' '{print $1}')
sys_disk_size=$(echo $sys_disk_info|awk -F';' '{print $2}')
sys_disk_num=$(echo $sys_disk_info|awk -F';' '{print $3}')
sys_disk_raid=$(echo $sys_disk_info|awk -F';' '{print $4}')
data_disk_name=$(get_disk_name "/chost")
if [[ $data_disk_name = $sys_disk_name ]]; then
data_disk_info=$sys_disk_info
else
data_disk_info=$(get_disk_info "$data_disk_name")
fi
data_disk_type=$(echo $data_disk_info|awk -F';' '{print $1}')
data_disk_size=$(echo $data_disk_info|awk -F';' '{print $2}')
data_disk_num=$(echo $data_disk_info|awk -F';' '{print $3}')
data_disk_raid=$(echo $data_disk_info|awk -F';' '{print $4}')
back_disk_name=$(get_disk_name "/backup")
if [[ $back_disk_name = $sys_disk_name ]]; then
back_disk_info=$sys_disk_info
elif [[ $back_disk_name = $data_disk_name ]]; then
back_disk_info=$data_disk_info
else
back_disk_info=$(get_disk_info "$back_disk_name")
fi
back_disk_type=$(echo $back_disk_info|awk -F';' '{print $1}')
back_disk_size=$(echo $back_disk_info|awk -F';' '{print $2}')
back_disk_num=$(echo $back_disk_info|awk -F';' '{print $3}')
back_disk_raid=$(echo $back_disk_info|awk -F';' '{print $4}')
os_ver=$(awk '{print $1$3}' /etc/redhat-release)
s_num=$(dmidecode --string chassis-serial-number)
echo "{"
echo \"机器型号\":\"$pname\",
echo \"机器高度\":\"$cap\",
echo \"CPU信息\":\{\"CPU型号\":\"$cpu_model\",\"核数\":$cpu_core,\"线程\":$cpu_thread,\"CPU个数\":$cpu_count\},
echo \"内存信息\":\{\"内存型号\":\"$mem_vendor\",\"每条大小\":\"$mem_size\",\"条数\":$mem_count\},
echo \"系统盘信息\":\{\"磁盘类别\":\"$sys_disk_type\",\"磁盘大小\":\"$sys_disk_size\",\"磁盘个数\":$sys_disk_num,\"阵列类型\":\"$sys_disk_raid\"},
echo \"运行盘信息\":\{\"磁盘类别\":\"$data_disk_type\",\"磁盘大小\":\"$data_disk_size\",\"磁盘个数\":$data_disk_num,\"阵列类型\":\"$data_disk_raid\"},
echo \"备份盘信息\":\{\"磁盘类别\":\"$back_disk_type\",\"磁盘大小\":\"$back_disk_size\",\"磁盘个数\":$back_disk_num,\"阵列类型\":\"$back_disk_raid\"},
if [[ -n $1 ]] && [[ $1 = '-p' ]]; then
echo \"购买时间\":\"2013-09-11\",
echo \"过保时间\":\"2015-09-11\",
echo \"机柜号\":\"?\",
echo \"机柜内位置编号\":\"?\",
fi
echo \"操作系统版本\":\"$os_ver\",
echo \"快速服务代码\":\"$s_num\",
echo \"其他信息\":\"null\"
echo "}"