08、IPMI温度获取

阅读更多

1、方案

(1)先扫描出10.0.2.x网段有应答的机器,然后通过ipmitool逐个获取机箱温度信息,过滤出cpu温度后,设定温升30度,即60度以上温度为报警阀值(以后根据情况调整)。
   (2)因为获取温度语法不一致,所以现在将IPMI地址放在配置文件ipmi.config(可以有多个)中,将IPMI地址和IP地址映射放在配置文件mapping.config中,读取ipmi.config文件中ipmi地址,根据不同的地址选用不同的语法,输出信息在Ipmitemp.log文件中.报警阀值设置与方案1一致,需要在邮件内容附加上Ip与IPMI IP地址对应关系以便问题解决。
    现在暂时采用方案2,以后或根据情况进行调整.
 

2、部分语法说明

vim getip.sh  #获取当前IP段有应答的机器
#/bin/bash
AreaIP=192.168.1.0/24
nmap -sP ${AreaIP} > nmapinfo.log
grep Host nmapinfo.log |awk -F" " '{print $2 $3}'|sed 's/appears//'|sed 's/seems//'|cut -d '(' -f2 |sed 's/)//' >onlyip.log
cat onlyip.log


//获取IPMI设备的温度
ZD
ipmitool -I lan -H 10.10.22.30 -U root -P intel  sdr get "Baseboard Temp" 

BJ: 41/43/45/49
ipmitool -I lan -H 10.0.2.45  -P 123456 sdr get "Baseboard Temp" 
   : 52
ipmitool -I lan -H 10.0.2.52  -P 123456 sdr get "Ambient Temp" 

    //获取单个温度值
    cat Ipmitemp.log |grep "10.0.2.52"  -A 4 |grep "Sensor Reading"|/bin/awk -F ":" '{print $2}'|/bin/awk -F "(" '{print $1}'

你可能感兴趣的:(vim,Bash,F#)