当前位置: 首页 > news >正文

服务器IPMI用户名、密码批量检查

背景

大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器IPMI带外管理添加较多的用户,这就需要对较多的服务器检查所对应的IPMI用户和密码设置的准确性。又因不同厂商的不同型号的服务器较多给检查工作又带来了不小的困难,所以你可以通过下面的脚本来批量检查。

使用说明

脚本在Linux服务器上执行,前提是安装ipmitool工具,且安装驱动软件,能在系统下读到IPMI信息才可以执行。

user_Quantity代表检查的用户数量;
下面的用户id,则代表ipmi系统里的用户ID值,(用户ID信息可以使用ipmitool user list命令查看);
密码则是该ID要检查的密码;

在这里插入图片描述

在这里插入图片描述
检查输出
在这里插入图片描述
用户不存在输出
在这里插入图片描述

脚本信息

#!/bin/bash
#用户数量
user_Quantity=3
#检查的用户信息
user1_id=2
user1_Password="superAdmin@01"

user2_id=3
user2_Password="superAdmin@02"

user3_id=8
user3_Password="superAdmin@03"


#厂商与型号获取
Vendor_out=$(dmidecode -t 1 | grep -Ei "Manufacturer" |cut -d ":" -f 2)
Product=$(dmidecode -t 1 |grep "Product Name" |cut -d ":" -f 2)

#管理地址获取
bond0_net_01=`ls /etc/sysconfig/network-scripts/ifcfg-bond0.* | awk '{print $0}' |sed -n "1p"`
[ -e "$bond0_net_01" ] && bond0_ip=`cat $bond0_net_01  |grep IPADDR |tr -d '\r'|cut -d "=" -f 2`



vendor=$(dmidecode -t 1 | grep -Ei "Manufacturer")

if [[ $vendor == *H3C* ]];then
    BMC_IP=$(ipmitool lan print 8 | grep -E "IP\s+Address\s+:" | awk '{print $4}')
	
	#H3C服务器获取IPMI_ID用户名、密码检查信息
	for((i = 1; i <= $user_Quantity ;i++)); do
	eval userid="$"user${i}_id""
	eval user$i=`ipmitool user list 8 |grep ^${userid} |awk '{print $2}'`
	eval user_password="$"user${i}_Password""
	eval user${i}_passwd_check=`ipmitool user test $userid  16 $user_password` &> /dev/null
	eval user_passwd_check_next="$"user${i}_passwd_check""
	[ $user_passwd_check_next == "Success" ] &> /dev/null && eval user${i}_passwd_check_out="OK" || eval user${i}_passwd_check_out="Fail"
	done
elif [[ $vendor == *ZTE* ]];then
	BMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')
	
	#ZTE服务器获取IPMI_ID用户名、密码检查信息
	for((i = 1; i <= $user_Quantity ;i++)); do
	eval userid="$"user${i}_id""
	eval user$i=`ipmitool user list 8 |grep ^${userid} |awk '{print $2}'`
	eval user_password="$"user${i}_Password""
	eval user${i}_passwd_check=`ipmitool user test $userid  16 $user_password` &> /dev/null
	eval user_passwd_check_next="$"user${i}_passwd_check""
	[ $user_passwd_check_next == "Success" ] &> /dev/null && eval user${i}_passwd_check_out="OK" || eval user${i}_passwd_check_out="Fail"
	done
	
elif [[ $vendor == *Suma* ]];then
	BMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')
	
	#中科可控服务器获取IPMI_ID用户名、密码检查信息
	for((i = 1; i <= $user_Quantity ;i++)); do
	eval userid="$"user${i}_id""
	eval user$i=`ipmitool user list 8 |head -11 |grep ^${userid} |awk '{print $2}'`
	eval user_password="$"user${i}_Password""
	eval user${i}_passwd_check=`ipmitool user test $userid  16 $user_password` &> /dev/null
	eval user_passwd_check_next="$"user${i}_passwd_check""
	[ $user_passwd_check_next == "Success" ] &> /dev/null && eval user${i}_passwd_check_out="OK" || eval user${i}_passwd_check_out="Fail"
	done
	
else
    BMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')
	
	#通用获取IPMI_ID用户名、密码检查信息
	for((i = 1; i <= $user_Quantity ;i++)); do
	eval userid="$"user${i}_id""
	eval user$i=`ipmitool user list |grep ^${userid} |awk '{print $2}'`
	eval user_password="$"user${i}_Password""
	eval user${i}_passwd_check=`ipmitool user test $userid  16 $user_password` &> /dev/null
	eval user_passwd_check_next="$"user${i}_passwd_check""
	[ $user_passwd_check_next == "Success" ] &> /dev/null && eval user${i}_passwd_check_out="OK" || eval user${i}_passwd_check_out="Fail"
	done
fi

#IPMI密码检查
	#通用获取IPMI_ID用户名、密码检查信息
for((i = 1; i <= $user_Quantity ;i++)); do
	eval user_id="$"user${i}_id""
	eval user_out="$"user${i}""
	[ $user_out == "true" ] && user_out="该用户ID用户无配置,请检查!"
	eval check_out="$"user${i}_passwd_check_out""
	echo -e "服务器管理网IP:$bond0_ip IPMI地址:$BMC_IP 厂商:$Vendor_out 型号:$Product IPMI用户ID:$user_id IPMI用户:$user_out 密码检查结果:$check_out"
done

干货分享(自取)

  • 信息安全管理体系(ISMS)制度模板分享

  • 开源文档翻译工具,支持word、pdf、ppt、excel

  • PuTTY中文版安装包

  • MobaXterm中文版安装包

相关文章:

  • 【PCIe 总线及设备入门学习专栏 10.1 -- Linux PCIe 驱动框架 之 RK3399 Region1 访问】
  • ai-3、机器学习之逻辑回归
  • P1706 全排列问题
  • 【13】智能合约进阶
  • 【终篇】基于C++的通讯录管理系统(完整源码)
  • 经典算法 统计数字问题(常数时间解决)
  • 数字样机:从技术革新到产业赋能的演进之路
  • 【AI大模型】伪装成百科选词填空的红队攻击方法:SATA
  • 《Python实战进阶》No 7: 一个AI大模型聊天室的构建-基于WebSocket 实时通信开发实战
  • 英文输入法
  • UniApp 中封装 HTTP 请求与 Token 管理(附Demo)
  • 自回归与自监督分别是什么,区别是什么
  • Scala Trait(特征)
  • MySQL 和 PostgreSQL 的详细对比
  • 【Cadence射频仿真学习笔记】2.4GHz低噪放LNA仿真设计
  • 探究高空视频全景AR技术的实现原理
  • onlyoffice 服务搭建及配置 - 前端 office 文件预览解决方案
  • 动态规划 之 枚举型
  • 软考高级【网络规划设计师】 综合知识 - 计算机网络基础
  • Kubernetes故障排查实战指南
  • 莱阳网站建设公司/百度互联网营销
  • 简述网站开发的三层架构/windows优化大师手机版
  • 长春网站建设有什么/郑州seo技术
  • 高要网站制作/给网站做seo的价格
  • 网站建设又叫什么软件/seo网站建设优化
  • 做钻石的网站/培训机构招生方案范文