服务器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* ]];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中文版安装包
相关文章:
服务器IPMI用户名、密码批量检查
背景 大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器IPMI带外管理添加较多的用户,这就需要对较多的服务器检查所对应的IPMI用…...
管理后台环境配置
后端配置及启动 a. 软件安装 1. Java sdk 1.8 2. maven 3.6 3. intellij IDEA 2024 4. Visual C Redistributable 5. mongodb 7.0 6. mysql 8.0 双击安装:mysql-installer-community-8.0.41.0.msi 版本选择:Full,包括服务器和客户端 …...
element-ui infiniteScroll 组件源码分享
简单分享 infiniteScroll 组件源码,主要有以下四个方面: 1、infiniteScroll 页面结构。 2、infiniteScroll 组件属性。 3、组件内部的方法。 4、存在的问题。 一、infiniteScroll 页面结构: 二、页面属性。 2.1 infinite-scroll-disab…...
Pany-v2:LFI漏洞探测与敏感文件(私钥窃取/其他)自动探测工具
地址:https://github.com/MartinxMax/pany 关于Pany-v2 Pany-v2 是一款 LFI(本地文件包含)漏洞探测工具,具备自动识别敏感文件的能力。它能够利用 LFI 漏洞检测并提取 id_rsa 私钥、系统密码文件以及其他可能导致安全风险的敏感信息。该工具…...
供应链管理系统--升鲜宝门店收银系统功能解析,登录、主界面、会员 UI 设计图(一)
供应链管理系统--升鲜宝门店收银系统功能解析,登录、主界面 会员 UI 设计图(一)...
Day11,Hot100(贪心算法)
贪心 (1)121. 买卖股票的最佳时机 第 i 天卖出的最大利润,即在前面最低价的时候买入 class Solution:def maxProfit(self, prices: List[int]) -> int:min_price prices[0]ans 0for price in prices:ans max(ans, price - min_price…...
nss刷题4
[SWPUCTF 2023 秋季新生赛]Pingpingping 看看源码,首先是get传参Ping_ip.exe,然后如果请求了_ping参数,就会执行ping命令,执行三次 <?php highlight_file(__FILE__); error_reporting(0); $_ping $_GET[Ping_ip.exe]; if(isset($_ping…...
Eclipse 编译项目指南
Eclipse 编译项目指南 引言 Eclipse 是一款功能强大的集成开发环境(IDE),广泛用于Java、C/C、Python等多种编程语言的开发。在Eclipse中编译项目是进行软件开发的基础步骤。本文将详细介绍如何在Eclipse中编译项目,包括项目设置…...
天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库
天佐.乾坤袋 天佐.乾坤袋 简介 天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库,可用于文件打包,数据整合,加密存放等多种用途。可以方便快捷的搭建和部署存储应用的系统。 传说: 弥勒所有,专做储物之用。拥有不可思议之力&#x…...
win11编译pytorch cuda128版本流程
Geforce 50xx系显卡最低支持cuda128,torch cu128 release版本目前还没有释放,所以自己基于2.6.0源码自己编译wheel包。 1. 前置条件 1. 使用visual studio installer 安装visual studio 2022,工作负荷选择【使用c的桌面开发】,安装完成后将…...
Windows 11 下正确安装 Docker Desktop 到 D 盘的完整教程
文章目录 Windows 11 在 D 盘正确安装 Docker Desktop 的完整教程**前言****准备工作****1. 手动创建 Docker 相关目录**(⚠️ **这一步非常重要**,否则会报错)**2. 下载 Docker Desktop 安装程序****3. 使用管理员权限打开终端** **安装 Doc…...
IDEA - 查看类的继承结构(通过快捷键查看、通过生成类图查看)
一、通过快捷键查看 在项目中定位到目标类(例如,Executor.java) 按下快捷键 【Ctrl H】 此时会弹出 Type Hierarchy 窗口,展示所有相关的父类、子类、接口 二、通过生成类图查看 在项目中定位到目标类(例如&#x…...
Vue 3指令全解析:内置指令与自定义指令实战指南
Vue指令是模板语法的核心武器,它们以v-前缀的形式为HTML元素添加特殊功能。本文将深入探讨Vue 3中的指令系统,覆盖10个核心指令的妙用,并手把手教你打造专属自定义指令。 一、Vue指令基础认知 指令本质上是DOM操作的语法糖,它们&…...
Springboot 自动化装配的原理
Springboot 自动化装配的原理 SpringBoot 主要作用为:起步依赖、自动装配。而为了实现这种功能,SpringBoot 底层主要使用了 SpringBootApplication 注解。 首先,SpringBootApplication 是一个复合注解,它结合了 Configuration、…...
Linux——进程池
前言:大佬写博客给别人看,菜鸟写博客给自己看,我是菜鸟。 1.实现思路 思路:通过创建匿名管道,来实现父子进程之间的通信 注1:父写,子读 注2:匿名管道只能用来进行具有血管关系的进程…...
Qt基于等待条件QWaitCondition实现的任务队列模型示例
核心概念 Qt中的QWaitCondition是一个用于多线程同步的类,允许线程在某些条件满足时唤醒其他等待的线程。它通常与QMutex配合使用,协调线程之间的执行顺序,适用于生产者-消费者模型、任务队列调度等场景。 wait():使当前线程进…...
微服务即时通信系统---(六)语音识别子服务
目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程思想 服务代码实现 编写proto文件 服务端创建子类(SpeechRecognitionServiceImpl)完成RPC服务调用函数重写 SpeechRecognize(语音识别) 服务端完成语音识别子服务类(SpeechRecognitionServer) 注意 …...
JavaWeb基础专项复习5——请求对象和响应对象request and response
系列文章目录 1、JavaWeb基础专项复习1——XML文件-CSDN博客 2、JavaWeb基础专项复习2——JSP文件-CSDN博客 3、JavaWeb基础专项复习2——Servlet相关知识-CSDN博客 4、JavaWeb基础专项复习4——会话对象Session and Cookie-CSDN博客 文章目录 系列文章目录文章目录1、Tom…...
mac下载MAMP6.8.1;解决mac使用小皮面板安装php7.4
因为mac的小皮面板没有php7.4了 链接:c9cc270e6961c17c.dmg官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 鹅选一 附上大佬写的教程:MAMP PRO教程 - 牛奔 - 博客园 更新一下,2-27 昨天已经可以使用php7.4了,我就在想能…...
大模型WebUI:Gradio全解12——LangChain原理、架构和组件(3)
大模型WebUI:Gradio全解12——LangChain原理、架构和组件(3) 前言本篇摘要12. LangChain原理及agents构建Gradio UI12.3 LangChain架构12.3.1 LangChain12.3.2 Integration Packages1. 概念2. 示例12.3.3 LangGraph1. 概念2. 示例12.3.4 LangGraph Platform1. 概览2. 优势分…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
