远程redhat客户端下自动生成本地BMC压测脚本的方法与流程

文档序号:13912942阅读:593来源:国知局

本发明涉及bmc测试技术领域,具体涉及远程redhat客户端下自动生成本地bmc压测脚本的方法。



背景技术:

验证24小时本地redhat系统下的sensor读取压力测试是bmc压力测试不可缺少的一项测试,对于不同项目服务器的bmcsensor名称和数量都有所不同,那么在编辑redhat本地系统下sensor压力测试的脚本时就需要大量的时间和精力,若将编辑脚本由自动编辑代替人工编辑将会大大减少编辑时间,降低边际成本,如何实现自动生成本地redhat系统下的压测脚本成为亟待解决的问题。



技术实现要素:

本发明的技术任务是提供远程redhat客户端下自动生成本地bmc压测脚本的方法,使用ipmitool工具读取的sdrelist可以自动生成在本地redhat系统下的压测脚本,以实现减少编辑时间,降低测试成本。

本发明解决其技术问题所采用的技术方案是:

远程redhat客户端下自动生成本地bmc压测脚本的方法,该方法在使用远程redhat客户端下自动生成本地redhat系统下bmcsensor压测脚本,使用远程ipmitoolsdrelist获取所有sensor,将其自动导入到本地redhat系统下的bmc压测脚本中,实现自动编辑;

进行bmc压测前首先安装ipmitool工具,使用ipmitool工具读取sdrelist自动生成在本地redhat系统下的压测脚本。

进一步的,所述ipmitoolsdrelist命令列举全部温度、电压和硬件状态传感器的名称和读值,通过远程截取需要的传感器名称和读值生成本地redhat系统下的压测脚本,检查bmc在本地长时间运行的情况下是否正常。

进一步的,该方法操作步骤如下:

1)、在redhat客户端下安装ipmitool工具;

2)、确保redhat客户端的网络与项目bmcip可以ping通;

3)、将sensor_reading_kcs_linux.sh脚本copy到redhat客户端桌面;

4)、给予可执行权限chmod777sensor_reading_kcs_linux.sh;

5)、在redhat客户端下执行以下程序:

./sensor_reading_kcs_linux.sh+bmc_ip+user+password;

6)、执行后提示“pleasewait20seconds……”,20秒后生产以该项目productname为首的sh文件,该sh文件包含所有sensor,将此sh文件copy到server本地的redhat下,即可进行本地bmcsensor压测。

所述的程序./sensor_reading_kcs_linux.sh+bmc_ip+user+password为./sensor_reading_kcs_linux.sh100.3.8.114adminiei2#1ow。

sensor_reading_kcs_linux.sh脚本内容为:

#!/bin/bash

#set-x

pn=`ipmitool-ilanplus-h$1-u$2-p$3fru|grep-i"productname"|awk'{print$4}'`

echo"pleasewait20seconds......"

count=`ipmitool-ilanplus-h$1-u$2-p$3sdrelist|wc-l`

#echo$count

functionlinux_kcs(){

echo"#!/bin/bash">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"sensorreadingstressstart:date"">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"for((a=1;a<=1000;a++))">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"do">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo$atimesstressisrunning:%date%%time%>>./$pn/time.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/fru.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolfruprint>>./$pn/fru.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/chassis_status.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolchassisstatus>>./$pn/chassis_status.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/lan_print_1.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoollanprint1>>./$pn/lan_print_1.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/lan_print_8.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoollanprint1>>./$pn/lan_print_8.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/mc_info.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolmcinfo>>./$pn/mc_info.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/sel_elist.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolselelist>>./$pn/sel_elist.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"sleep3">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"done">>"$pn"_sensor_reading_of_linux_kcs.sh

}

linux_kcs

for((i=1;i<=$count;i++));

do

sensor=`ipmitool-ilanplus-h$1-u$2-p$3sdrelist|awk'{print$1}'|sed-n''$i'p'`

sed-i'4aipmitoolsdrelist|grep-i"'$sensor'">>./'$pn'/"'$sensor'".log'"$pn"_sensor_reading_of_linux_kcs.sh

done

进一步的,所述ipmitool工具为任意版本的ipmitool工具。

进一步的,所述sh文件为vancouver_sensor_reading_of_linux_kcs.sh,具体内容如下:

#!/bin/bash

echosensorreadingstressstart:date

for((a=1;a<=1000;a++))

do

ipmitoolsdrelist|grep-i"psu1_power">>./vancouver/"psu1_power".log

ipmitoolsdrelist|grep-i"psu0_power">>./vancouver/"psu0_power".log

ipmitoolsdrelist|grep-i"fan_power">>./vancouver/"fan_power".log

ipmitoolsdrelist|grep-i"mem_power">>./vancouver/"mem_power".log

ipmitoolsdrelist|grep-i"cpu_power">>./vancouver/"cpu_power".log

ipmitoolsdrelist|grep-i"total_power">>./vancouver/"total_power".log

ipmitoolsdrelist|grep-i"fan4_1">>./vancouver/"fan4_1".log

ipmitoolsdrelist|grep-i"fan4_0">>./vancouver/"fan4_0".log

ipmitoolsdrelist|grep-i"fan3_1">>./vancouver/"fan3_1".log

ipmitoolsdrelist|grep-i"fan3_0">>./vancouver/"fan3_0".log

ipmitoolsdrelist|grep-i"fan2_1">>./vancouver/"fan2_1".log

ipmitoolsdrelist|grep-i"fan2_0">>./vancouver/"fan2_0".log

ipmitoolsdrelist|grep-i"fan1_1">>./vancouver/"fan1_1".log

ipmitoolsdrelist|grep-i"fan1_0">>./vancouver/"fan1_0".log

ipmitoolsdrelist|grep-i"fan0_1">>./vancouver/"fan0_1".log

ipmitoolsdrelist|grep-i"fan0_0">>./vancouver/"fan0_0".log

ipmitoolsdrelist|grep-i"pch_vnn">>./vancouver/"pch_vnn".log

ipmitoolsdrelist|grep-i"pch_1.05v">>./vancouver/"pch_1.05v".log

ipmitoolsdrelist|grep-i"cpu1_vccio">>./vancouver/"cpu1_vccio".log

ipmitoolsdrelist|grep-i"cpu0_vccio">>./vancouver/"cpu0_vccio".log

ipmitoolsdrelist|grep-i"cpu1_vddq_ch345">>./vancouver/"cpu1_vddq_ch345".log

ipmitoolsdrelist|grep-i"cpu1_vddq_ch012">>./vancouver/"cpu1_vddq_ch012".log

ipmitoolsdrelist|grep-i"cpu0_vddq_ch345">>./vancouver/"cpu0_vddq_ch345".log

ipmitoolsdrelist|grep-i"cpu0_vddq_ch012">>./vancouver/"cpu0_vddq_ch012".log

ipmitoolsdrelist|grep-i"cpu1_vcore">>./vancouver/"cpu1_vcore".log

ipmitoolsdrelist|grep-i"cpu0_vcore">>./vancouver/"cpu0_vcore".log

ipmitoolsdrelist|grep-i"sys_12v">>./vancouver/"sys_12v".log

ipmitoolsdrelist|grep-i"sys_5v">>./vancouver/"sys_5v".log

ipmitoolsdrelist|grep-i"sys_3.3v">>./vancouver/"sys_3.3v".log

ipmitoolsdrelist|grep-i"bmc_boot_up">>./vancouver/"bmc_boot_up".log

ipmitoolsdrelist|grep-i"gpu7_temp">>./vancouver/"gpu7_temp".log

ipmitoolsdrelist|grep-i"gpu6_temp">>./vancouver/"gpu6_temp".log

ipmitoolsdrelist|grep-i"gpu5_temp">>./vancouver/"gpu5_temp".log

ipmitoolsdrelist|grep-i"gpu4_temp">>./vancouver/"gpu4_temp".log

ipmitoolsdrelist|grep-i"gpu3_temp">>./vancouver/"gpu3_temp".log

ipmitoolsdrelist|grep-i"gpu2_temp">>./vancouver/"gpu2_temp".log

ipmitoolsdrelist|grep-i"gpu1_temp">>./vancouver/"gpu1_temp".log

ipmitoolsdrelist|grep-i"gpu0_temp">>./vancouver/"gpu0_temp".log

ipmitoolsdrelist|grep-i"pch_temp">>./vancouver/"pch_temp".log

ipmitoolsdrelist|grep-i"cpu1_temp">>./vancouver/"cpu1_temp".log

ipmitoolsdrelist|grep-i"cpu0_temp">>./vancouver/"cpu0_temp".log

ipmitoolsdrelist|grep-i"outlet_temp">>./vancouver/"outlet_temp".log

ipmitoolsdrelist|grep-i"inlet_temp">>./vancouver/"inlet_temp".log

echotimesstressisrunning:%date%%time%>>./vancouver/time.log

echo=======================================>>./vancouver/fru.log

ipmitoolfruprint>>./vancouver/fru.log

echo=======================================>>./vancouver/chassis_status.log

ipmitoolchassisstatus>>./vancouver/chassis_status.log

echo=======================================>>./vancouver/lan_print_1.log

ipmitoollanprint1>>./vancouver/lan_print_1.log

echo=======================================>>./vancouver/lan_print_8.log

ipmitoollanprint1>>./vancouver/lan_print_8.log

echo=======================================>>./vancouver/mc_info.log

ipmitoolmcinfo>>./vancouver/mc_info.log

echo=======================================>>./vancouver/sel_elist.log

ipmitoolselelist>>./vancouver/sel_elist.log

sleep3

done。

本发明的远程redhat客户端下自动生成本地bmc压测脚本的方法与现有技术相比,具有以下有益效果:

使用ipmitool工具读取的sdrelist可以自动生成在本地redhat系统下的压测脚本,以达到减少编辑压力测试脚本时间,降低测试成本,提高测试准确度的目的。实现自动编辑,可省去一部分人力,降低人为编辑错的风险,提高了测试工作效率,改进后编辑过程更加方便,编辑手段更加简洁,即使不知道bmcsensor名称和数量,依然可以进行测试,且编辑无误。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

远程redhat客户端下自动生成本地bmc压测脚本的方法,该方法在使用远程redhat客户端下自动生成本地redhat系统下bmcsensor压测脚本进行bmc压测前首先安装ipmitool工具,使用ipmitool工具读取sdrelist自动生成在本地redhat系统下的压测脚本。

其中,ipmitoolsdrelist命令可以列举全部温度、电压和硬件状态等传感器的名称和读值,通过远程截取需要的传感器名称和状态等读值生成本地redhat系统下的压测脚本,来检查bmc在本地长时间运行的情况下是否正常。

该方法操作步骤如下:

1)、在redhat客户端下安装ipmitool工具,所述ipmitool工具为任意版本的ipmitool工具;

2)、确保redhat客户端的网络与项目bmcip可以ping通;

3)、将sensor_reading_kcs_linux.sh脚本copy到redhat客户端桌面;

4)、给予可执行权限chmod777sensor_reading_kcs_linux.sh;

5)、在redhat客户端下执行

./sensor_reading_kcs_linux.sh+bmc_ip+user+password,例如./sensor_reading_kcs_linux.sh100.3.8.114adminiei2#1ow;

以下是sensor_reading_kcs_linux.sh脚本内容

#!/bin/bash

#set-x

pn=`ipmitool-ilanplus-h$1-u$2-p$3fru|grep-i"productname"|awk'{print$4}'`

echo"pleasewait20seconds......"

count=`ipmitool-ilanplus-h$1-u$2-p$3sdrelist|wc-l`

#echo$count

functionlinux_kcs(){

echo"#!/bin/bash">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"sensorreadingstressstart:date"">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"for((a=1;a<=1000;a++))">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"do">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo$atimesstressisrunning:%date%%time%>>./$pn/time.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/fru.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolfruprint>>./$pn/fru.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/chassis_status.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolchassisstatus>>./$pn/chassis_status.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/lan_print_1.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoollanprint1>>./$pn/lan_print_1.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/lan_print_8.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoollanprint1>>./$pn/lan_print_8.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/mc_info.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolmcinfo>>./$pn/mc_info.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"echo"=======================================">>./$pn/sel_elist.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"ipmitoolselelist>>./$pn/sel_elist.log">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"sleep3">>"$pn"_sensor_reading_of_linux_kcs.sh

echo"done">>"$pn"_sensor_reading_of_linux_kcs.sh

}

linux_kcs

for((i=1;i<=$count;i++));

do

sensor=`ipmitool-ilanplus-h$1-u$2-p$3sdrelist|awk'{print$1}'|sed-n''$i'p'`

sed-i'4aipmitoolsdrelist|grep-i"'$sensor'">>./'$pn'/"'$sensor'".log'"$pn"_sensor_reading_of_linux_kcs.sh

done

6)、执行后提示“pleasewait20seconds……”,20秒后生产以该项目productname为首的sh文件,该sh文件包含所有sensor,将此sh文件copy到server本地的redhat下,即可进行本地bmcsensor压测,例如生成vancouver_sensor_reading_of_linux_kcs.sh,具体内容如下:

#!/bin/bash

echosensorreadingstressstart:date

for((a=1;a<=1000;a++))

do

ipmitoolsdrelist|grep-i"psu1_power">>./vancouver/"psu1_power".log

ipmitoolsdrelist|grep-i"psu0_power">>./vancouver/"psu0_power".log

ipmitoolsdrelist|grep-i"fan_power">>./vancouver/"fan_power".log

ipmitoolsdrelist|grep-i"mem_power">>./vancouver/"mem_power".log

ipmitoolsdrelist|grep-i"cpu_power">>./vancouver/"cpu_power".log

ipmitoolsdrelist|grep-i"total_power">>./vancouver/"total_power".log

ipmitoolsdrelist|grep-i"fan4_1">>./vancouver/"fan4_1".log

ipmitoolsdrelist|grep-i"fan4_0">>./vancouver/"fan4_0".log

ipmitoolsdrelist|grep-i"fan3_1">>./vancouver/"fan3_1".log

ipmitoolsdrelist|grep-i"fan3_0">>./vancouver/"fan3_0".log

ipmitoolsdrelist|grep-i"fan2_1">>./vancouver/"fan2_1".log

ipmitoolsdrelist|grep-i"fan2_0">>./vancouver/"fan2_0".log

ipmitoolsdrelist|grep-i"fan1_1">>./vancouver/"fan1_1".log

ipmitoolsdrelist|grep-i"fan1_0">>./vancouver/"fan1_0".log

ipmitoolsdrelist|grep-i"fan0_1">>./vancouver/"fan0_1".log

ipmitoolsdrelist|grep-i"fan0_0">>./vancouver/"fan0_0".log

ipmitoolsdrelist|grep-i"pch_vnn">>./vancouver/"pch_vnn".log

ipmitoolsdrelist|grep-i"pch_1.05v">>./vancouver/"pch_1.05v".log

ipmitoolsdrelist|grep-i"cpu1_vccio">>./vancouver/"cpu1_vccio".log

ipmitoolsdrelist|grep-i"cpu0_vccio">>./vancouver/"cpu0_vccio".log

ipmitoolsdrelist|grep-i"cpu1_vddq_ch345">>./vancouver/"cpu1_vddq_ch345".log

ipmitoolsdrelist|grep-i"cpu1_vddq_ch012">>./vancouver/"cpu1_vddq_ch012".log

ipmitoolsdrelist|grep-i"cpu0_vddq_ch345">>./vancouver/"cpu0_vddq_ch345".log

ipmitoolsdrelist|grep-i"cpu0_vddq_ch012">>./vancouver/"cpu0_vddq_ch012".log

ipmitoolsdrelist|grep-i"cpu1_vcore">>./vancouver/"cpu1_vcore".log

ipmitoolsdrelist|grep-i"cpu0_vcore">>./vancouver/"cpu0_vcore".log

ipmitoolsdrelist|grep-i"sys_12v">>./vancouver/"sys_12v".log

ipmitoolsdrelist|grep-i"sys_5v">>./vancouver/"sys_5v".log

ipmitoolsdrelist|grep-i"sys_3.3v">>./vancouver/"sys_3.3v".log

ipmitoolsdrelist|grep-i"bmc_boot_up">>./vancouver/"bmc_boot_up".log

ipmitoolsdrelist|grep-i"gpu7_temp">>./vancouver/"gpu7_temp".log

ipmitoolsdrelist|grep-i"gpu6_temp">>./vancouver/"gpu6_temp".log

ipmitoolsdrelist|grep-i"gpu5_temp">>./vancouver/"gpu5_temp".log

ipmitoolsdrelist|grep-i"gpu4_temp">>./vancouver/"gpu4_temp".log

ipmitoolsdrelist|grep-i"gpu3_temp">>./vancouver/"gpu3_temp".log

ipmitoolsdrelist|grep-i"gpu2_temp">>./vancouver/"gpu2_temp".log

ipmitoolsdrelist|grep-i"gpu1_temp">>./vancouver/"gpu1_temp".log

ipmitoolsdrelist|grep-i"gpu0_temp">>./vancouver/"gpu0_temp".log

ipmitoolsdrelist|grep-i"pch_temp">>./vancouver/"pch_temp".log

ipmitoolsdrelist|grep-i"cpu1_temp">>./vancouver/"cpu1_temp".log

ipmitoolsdrelist|grep-i"cpu0_temp">>./vancouver/"cpu0_temp".log

ipmitoolsdrelist|grep-i"outlet_temp">>./vancouver/"outlet_temp".log

ipmitoolsdrelist|grep-i"inlet_temp">>./vancouver/"inlet_temp".log

echotimesstressisrunning:%date%%time%>>./vancouver/time.log

echo=======================================>>./vancouver/fru.log

ipmitoolfruprint>>./vancouver/fru.log

echo=======================================>>./vancouver/chassis_status.log

ipmitoolchassisstatus>>./vancouver/chassis_status.log

echo=======================================>>./vancouver/lan_print_1.log

ipmitoollanprint1>>./vancouver/lan_print_1.log

echo=======================================>>./vancouver/lan_print_8.log

ipmitoollanprint1>>./vancouver/lan_print_8.log

echo=======================================>>./vancouver/mc_info.log

ipmitoolmcinfo>>./vancouver/mc_info.log

echo=======================================>>./vancouver/sel_elist.log

ipmitoolselelist>>./vancouver/sel_elist.log

sleep3

done。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1