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}'