技术
成就梦想!

通过ipmitool批量修改服务器ipmi的syslog目标服务器IP地址与端口号

因syslog服务器IP地址变更需要,我们可能需要去修改服务器的ipmi里面的syslog服务器,但是如果手动修改的话费事费力还容易出错。如果不使用厂商自己的批量工具我们可以尝试通过ipmitool工具的raw命令去修改。需要提前准备ipmitool工具最新版(非最新版可能兼容性上有问题,所以推荐最新版,百度可以下载到)。

两种调用IPMI修改方式:
①调用windows的ipmitool,连接ipmi地址进行修改;
②调用Linux操作系统中的ipmitool修改;

这边举例是以Linux中的ipmitool工具去修改,目前可以修改以下厂商服务器的IPMI地址:
H3C、华为、浪潮、富士康、浪潮OEM。

#!/bin/bash
#批量修改syslog服务器目标地址:10.194.66.4:5045          IP地址:0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x00      端口号:0xb5 0x13 0x00 0x00

PRODUCT=`dmidecode -t 1 |grep Manufacturer`
echo $PRODUCT
        if [[ $PRODUCT == *H3C* ]];then
		#H3C R4900G3服务器 发送操作日志+事件日志+安全日志
        ipmitool  raw 0x36 0x09 0xA2 0x63 0x00 0x4b 0x01 0x01 0x07 0x00 0x00 0xb5 0x13 0x00 0x00 0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x00
        echo "Config..................`dmidecode -t 1 |grep Product`"
		
        elif [[ $PRODUCT == *Huawei* ]];then
        #华为服务器
		#设置syslog传输方式为UDP    最后一个字节表示:UDP:1  TCP:2  TLS:3
		ipmitool raw 0x30 0x93 0xDB 0x07 0x00 0x35 0x3F 0x00 0x01 0x20 0x00 0x00 0xFF 0xFF 0x00 0x01 0x00 0x05 0x00 0x00 0x01 0x01
		#syslog服务器地址   字符串格式,最后输入1字节长度,根据实际长度输入,后面接着IP的字符串格式
		ipmitool raw 0x30 0x93 0xDB 0x07 0x00 0x35 0x40 0x00 0x01 0x20 0x00 0x00 0x01 0x00 0x00 0x01 0x00 0x04 0x00 0x00 0x0E 0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x00	
		#最后4个字节表示,当前只有第1,2个字节有效,低字节在前。
		ipmitool raw 0x30 0x93 0xDB 0x07 0x00 0x35 0x40 0x00 0x01 0x20 0x00 0x00 0x01 0x00 0x00 0x01 0x00 0x05 0x00 0x00 0x04 0xb5 0x13 0x00 0x00
        echo "Config..................`dmidecode -t 1 |grep Product`"
		
        elif [[ $PRODUCT == *CMSoft* ]];then
        #浪潮OEM服务器_R2280X2
		ipmitool raw 0x32 0x68 0x00 0x02 0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xb5 0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
        echo "Config..................`dmidecode -t 1 |grep Product`"

        elif [[ $PRODUCT == *Inspur* ]];then
        #浪潮服务器
		ipmitool raw 0x32 0x68 0x00 0x02 0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xb5 0x13 0x00 0x00
        echo "Config..................`dmidecode -t 1 |grep Product`"
	
		#elif [[ $PRODUCT == *ZTE* ]];then
        ##中兴服务器  中兴服务器暂不支持通过ipmitool修改syslog
        #echo "Config..................`dmidecode -t 1 |grep Product`"
		
		elif [[ $PRODUCT == *CMCC* ]];then
		#富士康服务器
		ipmitool raw 0x32 0x68 0x00 0x02 0x31 0x30 0x2e 0x31 0x39 0x34 0x2e 0x36 0x36 0x2e 0x34 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xb5 0x13 0x0 0x0
		echo "Config..................`dmidecode -t 1 |grep Product`"
			
		fi

参数替换方式:
目标地址已经在下面shell中给出,替换的主要为syslog地址与端口号,稍微复杂的是端口号的修改

1、IP地址是通过ASCII -> HEX进行转换得到,然后再补全前面的“0x”,别忘记最后还有个占位的16进制数“0x00”。
转换网址:https://www.rapidtables.com/convert/number/ascii-to-hex.html

image

2、端口号换算稍微麻烦一些,端口号占用4个字节(4个16进制),端口号计算方法:
我这里举个例子,如果是5045如何去转化

①首先将十进制的5045转化为16进制为“13 b5”;
②将上面得到的“13 b5”从左往右开始排列到到“b5 13”;
③将上面得到的“b5 13”往后填充2个字节得到“b5 13 00 00”
④然后补全16进制前面的0x,得到脚本的“0xb5 0x13 0x00 0x00”
反之则倒着往回推即可。
端口号计算可以参考:https://zhiliao.h3c.com/questions/dispcont/96066

赞(5)
未经允许不得转载:未来往事 » 通过ipmitool批量修改服务器ipmi的syslog目标服务器IP地址与端口号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址