背景
大規模服務器部署的時候,少不了較多的網管和監測平臺,這些平臺會去監控服務器的性能、硬件等指標參數,為了便于管理和控制,則需要給服務器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中文版安裝包