本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體涉及基于IPMI服務(wù)批量模擬電壓異常狀態(tài)的測(cè)試方法。
背景技術(shù):
在監(jiān)控管理測(cè)試過程中,需要手動(dòng)對(duì)BMC的sensor觸發(fā)嚴(yán)重或非嚴(yán)重閾值的對(duì)應(yīng)事件,在電壓 sensor測(cè)試中需要修改閾值,觸發(fā)事件并且檢查相應(yīng)的log,之后還需要改回原值,一般電壓的sensor有8至10個(gè),如果逐個(gè)測(cè)試,工作量會(huì)較大,并且閾值改動(dòng)容易出現(xiàn)錯(cuò)誤。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是提供基于IPMI服務(wù)批量模擬電壓異常狀態(tài)的測(cè)試方法,基于BMC模擬電壓異常狀態(tài)的反復(fù)性和復(fù)雜程度,能夠快速,準(zhǔn)確的測(cè)試,節(jié)省人力、時(shí)間成本等資源,簡(jiǎn)單可靠。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
基于IPMI服務(wù)批量模擬電壓異常狀態(tài)的測(cè)試方法,基于BMC模擬電壓異常狀態(tài)的反復(fù)性和復(fù)雜程度,自動(dòng)抓取相應(yīng)的電壓 sensor名、sensor#、讀值和閾值,自動(dòng)更改對(duì)應(yīng)的閾值,觸發(fā)低閾和高閾的事件,自動(dòng)輸出顯示對(duì)應(yīng)的log并將閾值改回原值,進(jìn)行所有電壓sensor 測(cè)試。
進(jìn)一步的,該方法的實(shí)現(xiàn)步驟為:運(yùn)行腳本,遠(yuǎn)程測(cè)試,輸入服務(wù)器IP,用戶名和密碼,全過程自動(dòng)。
其中,所述sensor為電壓傳感器。
本發(fā)明的基于IPMI服務(wù)批量模擬電壓異常狀態(tài)的測(cè)試方法與現(xiàn)有技術(shù)相比,具有以下有益效果:
該腳本能自動(dòng)抓取相應(yīng)的電壓 sensor名、sensor#、讀值和閾值,自動(dòng)更改對(duì)應(yīng)的閾值,觸發(fā)低閾和高閾的事件,自動(dòng)輸出顯示對(duì)應(yīng)的log并將閾值改回原值,進(jìn)行所有電壓sensor 測(cè)試;該方案能夠快速,準(zhǔn)確的測(cè)試,節(jié)省人力、時(shí)間成本等資源,簡(jiǎn)單可靠。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
基于IPMI服務(wù)批量模擬電壓異常狀態(tài)的測(cè)試方法,基于BMC模擬電壓異常狀態(tài)的反復(fù)性和復(fù)雜程度,自動(dòng)抓取相應(yīng)的電壓 sensor名、sensor#、讀值和閾值,自動(dòng)更改對(duì)應(yīng)的閾值,觸發(fā)低閾和高閾的事件,自動(dòng)輸出顯示對(duì)應(yīng)的log并將閾值改回原值,進(jìn)行所有電壓sensor 測(cè)試。所述sensor為電壓傳感器。
該方法的實(shí)現(xiàn)步驟為:運(yùn)行腳本,遠(yuǎn)程測(cè)試,輸入服務(wù)器IP,用戶名和密碼,全過程自動(dòng)。
主要代碼:
#!/bin/bash
#Program:
service ipmi restart >/dev/null
echo -n Please input the BMC IP:
read IP
echo -n Please input the BMC username:
read USER
echo -n Please input the BMC password:
read PASSWD
#Output Volts sensor to sensor.log
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sdr elist |grep Volts |sort -t '|' -k 2 |sed '/^$/d' >/root/Desktop/sensor.log
line=`cat /root/Desktop/sensor.log |wc -l`
s=0
for (( i=1; i<=$line; i=i+1 ))
do
s=$(($s+1))
#sensorname
sensorname=`cat /root/Desktop/sensor.log |sed -n ''${s}'p' |awk '{print $1}'`
echo -e '\e[1;34m Sensorname:'$sensorname' \e[0m'
#sensornumber
sensornum=`cat /root/Desktop/sensor.log |sed -n ''${s}'p' | cut -d '|' -f 2 | cut -c -3 |cut -c 2-`
echo -e '\e[1;34m Sensornum :'${sensornum}' \e[0m'
reading=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x2d 0x$sensornum | cut -d ' ' -f 2`
YZ=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 2`
LNC=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 3`
LC=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 4`
LR=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 5`
UNC=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 6`
UC=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 7`
UR=`ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x27 0x$sensornum | cut -d ' ' -f 8`
low=`printf %d 0x$reading`
sum1=$(($low+1))
sum2=$(($low+2))
sum3=$(($low+3))
low1=`echo $sum1`
low2=`echo $sum2`
low3=`echo $sum3`
lr=`printf %x $low1`
lc=`printf %x $low2`
lnc=`printf %x $low3`
up=`printf %d 0x$reading`
jian1=$(($up-1))
jian2=$(($up-2))
jian3=$(($up-3))
up1=`echo $jian1`
up2=`echo $jian2`
up3=`echo $jian3`
ur=`printf %x $up1`
uc=`printf %x $up2`
unc=`printf %x $up3`
echo " Lower BMC SEL:"
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x26 0x$sensornum 0x$YZ 0x$lnc 0x$lc 0x$lr 0x$UNC 0x$UC 0x$UR >/dev/null
sleep 3
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel elist |grep Lower
sleep 5
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x26 0x$sensornum 0x$YZ 0x$LNC 0x$LC 0x$LR 0x$UNC 0x$UC 0x$UR >/dev/null
if
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel elist |grep Lower >/dev/null;
then
echo -e '\e[1;32m *******************************************************[PASS] \e[0m'
else
echo -e '\e[1;31m *******************************************************[FAIL] \e[0m'
fi
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel clear >/dev/null
echo " Upper BMC SEL:"
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x26 0x$sensornum 0x$YZ 0x$LNC 0x$LC 0x$LR 0x$unc 0x$uc 0x$ur >/dev/null
sleep 3
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel elist |grep Upper
sleep 5
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD raw 0x04 0x26 0x$sensornum 0x$YZ 0x$LNC 0x$LC 0x$LR 0x$UNC 0x$UC 0x$UR >/dev/null
if
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel elist |grep Upper >/dev/null;
then
echo -e '\e[1;32m *******************************************************[PASS] \e[0m'
else
echo -e '\e[1;31m *******************************************************[FAIL] \e[0m'
fi
ipmitool -I lanplus -H $IP -U $USER -P $PASSWD sel clear >/dev/null
done
通過上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。