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

embedded/2025/3/1 18:56:40/

背景

大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器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* ]];thenBMC_IP=$(ipmitool lan print 8 | grep -E "IP\s+Address\s+:" | awk '{print $4}')#H3C服务器获取IPMI_ID用户名、密码检查信息for((i = 1; i <= $user_Quantity ;i++)); doeval 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/nulleval 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* ]];thenBMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')#ZTE服务器获取IPMI_ID用户名、密码检查信息for((i = 1; i <= $user_Quantity ;i++)); doeval 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/nulleval 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"doneelif [[ $vendor == *Suma* ]];thenBMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')#中科可控服务器获取IPMI_ID用户名、密码检查信息for((i = 1; i <= $user_Quantity ;i++)); doeval 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/nulleval 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"doneelseBMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')#通用获取IPMI_ID用户名、密码检查信息for((i = 1; i <= $user_Quantity ;i++)); doeval 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/nulleval 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++)); doeval 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中文版安装包


http://www.ppmy.cn/embedded/169129.html

相关文章

基于 Python 的天气数据分析与可视化

基于 Python 的天气数据分析与可视化 1. 项目背景 天气数据分析与可视化项目旨在通过爬取天气数据并进行分析&#xff0c;生成可视化图表&#xff0c;帮助用户了解天气变化趋势。通过该项目&#xff0c;学生可以掌握 Python 的数据爬取、数据分析和可视化技能。该项目适用于气…

【Linux系统】—— 冯诺依曼体系结构与操作系统初理解

【Linux系统】—— 冯诺依曼体系结构与操作系统初理解 1 冯诺依曼体系结构1.1 基本概念理解1.2 CPU只和内存打交道1.3 为什么冯诺依曼是这种结构1.4 理解数据流动 2 操作系统2.1 什么是操作系统2.2 设计OS的目的2.3 操作系统小知识点2.4 如何理解"管理"2.5 系统调用和…

vue的双向绑定是怎么实现的

Vue.js 的双向绑定是通过 数据劫持&#xff08;Data Observation&#xff09; 和 发布-订阅模式&#xff08;Publish-Subscribe Pattern&#xff09; 实现的。具体来说&#xff0c;Vue 使用了以下核心技术&#xff1a; 数据劫持&#xff1a;通过 Object.defineProperty 或 Prox…

SQL打折日期交叉问题

1. 数据结构&#xff1a;数据为平台商品促销数据 表名&#xff1a;good_promotion 字段名&#xff1a;brand&#xff08;品牌&#xff09;、stt&#xff08;打折开始日期&#xff09;、edt&#xff08;打折结束日期&#xff09;。 2. 需求&#xff1a; ① 创建表 ② 计算每个…

如何用 Python 进行机器学习

文章目录 前言1. 环境准备Python安装选择Python开发环境安装必要库 2. 数据收集与加载3. 数据探索与可视化4. 数据预处理5. 模型选择与训练6. 模型评估7. 模型调优8. 模型部署 前言 使用 Python 进行机器学习一般可以按照以下步骤进行&#xff0c;下面将详细介绍每个步骤及对应…

DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨

文章目录 一、DeepSeek&#xff1a;知识图谱与高效信息检索1. 核心技术2. 主要特点3. 应用场景4. 实际案例 二、Grok&#xff1a;通用人工智能框架1. 核心技术2. 主要特点3. 应用场景4. 实际案例 三、ChatGPT&#xff1a;聊天机器人与通用对话系统1. 核心技术2. 主要特点3. 应用…

Java进阶——注解一文全懂

Java注解&#xff08;Annotation&#xff09;是一种强大的元数据机制&#xff0c;为代码提供了附加信息&#xff0c;能简化配置、增强代码的可读性和可维护性。本文将深入探讨 Java 注解的相关知识。首先阐述了注解的基础概念&#xff0c;包括其本质、作用以及核心分类&#xf…

从零开始:OpenCV计算机视觉基础教程【图像基本操作】

一、视频读取-摄像头读取 cap.get(propId)访问视频的一些功能&#xff0c;propId是0-18之间的数字。 每个数字表示视频得到属性&#xff0c;cap.set(propId, value)可以进行修改&#xff0c;value是新值 例如&#xff1a; cap.get(cv.CAP_PROP_FRAME_WIDTH)) #读取视频宽度…