最近需要做资产列表,要采集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) |