DELL服务器硬件信息采集SHELL脚本
最近需要做资产列表,要采集DELL服务器的硬件信息,包括如下信息:
1、操作系统信息(类型,版本,内核,平台,主机名)
2、主板信息(厂商,机型,序列号)
3、CPU信息(型号,个数,物理核数)
4、内存(条数,单条容量)
5、磁盘(个数,单个容量,磁盘类型,Raid级别)
执行前请先安装MegaRAID,为了提高工作效率,我们使用SHELL脚本来实现,如下:
#!/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 " printf "OS_DETAIL: $kname $nodename $kernal $bit " } 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 " printf "SN: $sn " } 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" " } 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") " } 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) " } diskinfo