最近需要做资产列表,要采集DELL服务器的硬件信息,包括如下信息:
1、操作系统信息(类型,版本,内核,平台,主机名)
2、主板信息(厂商,机型,序列号)
3、CPU信息(型号,个数,物理核数)
4、内存(条数,单条容量)
5、磁盘(个数,单个容量,磁盘类型,Raid级别)
执行前请先安装MegaRAID,为了提高工作效率,我们使用SHELL脚本来实现,如下:
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
|
#!/bin/sh
#get os information
function
get_os_info() {
release=`
cat
/etc/redhat-release
|
awk
'{print $1"_"$3}'
`
kname=`
uname
-s`
nodename=`
uname
-n`
kernal=`
uname
-r`
bit=`
uname
-i`
printf
"OS_RELEASE: $release"
_
"$bit\n"
printf
"OS_DETAIL: $kname $nodename $kernal $bit\n"
}
get_os_info
#get vendor, model, sn...
function
motherboard() {
vendor=`dmidecode -t 1|
grep
"Manufacturer"
|
awk
'{print $2}'
`
model=`dmidecode -t 1|
grep
"Product"
|
awk
'{print $4}'
`
sn=`dmidecode -t 1|
grep
"Serial"
|
awk
'{print $3}'
`
printf
"MODEL: $vendor $model\n"
printf
"SN: $sn\n"
}
motherboard
function
memory() {
count=`dmidecode -q -t 17 2 |
grep
"Size"
|
grep
-
v
"No Module Installed"
|
awk
'{print $2}'
|
uniq
-c|
awk
'{print $1}'
`
capacity=`dmidecode -q -t 17 2 |
grep
"Size"
|
grep
-
v
"No Module Installed"
|
awk
'{print $2}'
|
uniq
-c|
awk
'{print $2}'
`
capacity=`
expr
$capacity / 1024`
printf
"MEM: $count"
*
"$capacity"
G
"\n"
}
memory
function
cpuinfo() {
cpu_model=`
cat
/proc/cpuinfo
|
grep
"model name"
|
head
-1|
awk
-F:
'{print $2}'
`
cpu_count=`
cat
/proc/cpuinfo
|
grep
"core id"
|
grep
"0"
|
uniq
-c|
awk
'{print $1}'
`
cpu_total_cores=`
cat
/proc/cpuinfo
|
grep
"processor"
|
wc
-l`
single_cores=`
expr
$cpu_total_cores / $cpu_count`
printf
"CPU:$cpu_model($cpu_count"
*
"$single_cores"
Cores
")\n"
}
cpuinfo
function
diskinfo() {
raidlevel=`
/opt/MegaRAID/MegaCli/MegaCli64
-LDInfo -Lall -aALL |
grep
"RAID"
|
awk
'{print $3}'
|
cut
-b 9-9`
disknumber=`
/opt/MegaRAID/MegaCli/MegaCli64
-LDInfo -Lall -aALL |
grep
"Drives"
|
awk
-F
":"
'{print $2}'
`
disktype=`
/opt/MegaRAID/MegaCli/MegaCli64
-PDList -aALL |
grep
"PD Type"
|
head
-1|
awk
-F:
'{print $2}'
`
diskcapacity=`
/opt/MegaRAID/MegaCli/MegaCli64
-PDList -aALL |
grep
"Raw Size"
|
head
-1 |
awk
'{print $3}'
`
printf
"DISK: $disknumber"
*
"$diskcapacity"
GB
"$disktype (Raid Level: $raidlevel)\n"
}
diskinfo
|
脚本执行结果如下:
1
2
3
4
5
6
7
|
OS_RELEASE: CentOS_6.5_x86_64
OS_DETAIL: Linux appsrv 2.6.32-431.el6.x86_64 x86_64
MODEL: Dell R730
SN: CDFGHJL
MEM: 4*8G
CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz(2*8Cores)
DISK: 2*279.396GB SAS (Raid Level: 1)
|
本文转自清风拂面 51CTO博客,原文链接:http://blog.51cto.com/crazy123/1712254