#!/bin/bash
#測試要求如下:
# 1,所有的命令都通過ipmitool命令實現
# 2,所有命令都在沒有操作系統的情況下測試
HOST=$1
USER=$2
PASSWD=$3
function getinfo()
{
# 1. 獲取到服務器的網絡配置信息
echo -e "\n\n=======Networking Configurations:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 2.獲取到服務器的溫度信息
echo -e "\n\n=======Ambient Temprature:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Ambient Temp"
# 3.獲取到服務器的功率信息
echo -e "\n\n=======System Level:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level"
# 4.獲取到服務器的序列號信息
echo -e "\n\n=======Serial Number(Fru):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD fru
# 5.獲取到服務器的MAC
echo -e "\n\n=======Mac Address(only Dell):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem mac
# 6.獲取到服務器的資產號信息
echo -e "\n\n=======Serial Number(Fru):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level"
# 7.獲取到服務器的管理卡的時間
echo -e "\n\n=======Date and Time:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get
# 8.查看管理卡配置模式
echo -e "\n\n=======Lan set Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan get
# 9.查看SOL波特率
echo -e "\n\n=======Volatile Bit Rate (kbps):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
}
function operation()
{
# 1.服務器開機、關機、重啟
echo -e "\n\n=======Power:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD power
ipmitool -I lan -H $HOST -U $USER -P $PASSWD power status
# 2.服務器添加用戶、設置密碼、授予權限
echo -e "\n\n=======USER:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set name 10 test1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set password 10 test1pwd
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user enable 10
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
# 1-CALLBACK ,2-USER ,3-OPERATOR ,4-ADMNISTRATOR
echo -e "\n\n=======User privilage:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user priv 10 4 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
# 3.管理卡IP配置模式轉換(DHCP/靜態IP)
echo -e "\n\n=======OOB IP Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc static
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 4.管理卡修改IP地址
echo -e "\n\n=======Set IP:"
read -p "modify oob ip, please use the current network : " oobip
read -p "modify oob netmask : " netmask
read -p "modify oob gateway : " oobgw
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipaddr $oobip
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 netmask $netmask
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 defgw ipaddr $oobgw
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 5.管理卡配置模式轉換(獨立/共享) 僅dell
echo -e "\n\n=======Lan Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan
#ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan set dedicated
# 6.設置SOL波特率
echo -e "\n\n=======Sol volatile-bit-rate:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 115.2 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 57.6 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
# 7.SOL模式開啟、關閉
echo -e "\n\n=======Sol enable and disable:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled true 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled false 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
}
function extrainfo()
{
echo -e "\n\n\n=======Extra infomation:"
# cpu信息
echo -e "\n\n=======cpu型號:"
echo -e "\n\n=======cpu物理個數:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'Status' #華為提供,貌似不准確
echo -e "\n\n=======cpu當前頻率:"
#內存信息
echo -e "\n\n=======內存型號:"
echo -e "\n\n=======內存數量:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'DIMM'
#硬盤信息
echo -e "\n\n=======硬盤品牌:"
echo -e "\n\n=======硬盤SN:"
echo -e "\n\n=======硬盤型號:"
#電力
echo -e "\n\n=======服務器當前整體功耗:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Pwr"
echo -e "\n\n=======服務器交流實際供電電壓:" #不支持或未找到
echo -e "\n\n=======服務器直流3.3V,5V和12V實際供電電壓:"
#風扇
echo -e "\n\n=======風扇數量和轉速:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Fan"
#溫度
echo -e "\n\n=======服務器進風口溫度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Inlet"
echo -e "\n\n=======服務器出風口溫度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Exhaust Temp"
echo -e "\n\n=======CPU當前溫度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Temp"
#狀態:基於收集信息異常狀態的記錄及展示
echo -e "\n\n=======基於收集信息異常狀態的記錄及展示:"
#網絡:Mac地址
echo -e "\n\n=======遠程管理卡以及主板上所有網口的MAC地址:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print |grep "MAC Address"
#時間:收集管理卡當前時鍾信息,以“年月日時分秒”格式顯示。
echo -e "\n\n=======收集管理卡當前時鍾信息,以“年月日時分秒”格式顯示。:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get
#事件:異常事件、操作事件、登錄事件記錄
echo -e "\n\n=======異常事件、操作事件、登錄事件記錄:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel list
}
function extraop()
{
#通過網絡,命令行模式完成以下功能:
#1, 指定特定端口PXE啟動
echo -e "\n\n=======指定特定端口PXE啟動:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD chassis bootdev pxe #不能指定特定端口,端口指定可借助racadm等工具實現,網卡的pxe功能需要在bios中開啟
#2, 可通過管理卡啟動KVM(無需登錄web界面),並有相關的權限區分(可看,可操作等多種權限)
echo -e "\n\n=======可通過管理卡啟動KVM(無需登錄web界面),並有相關的權限區分(可看,可操作等多種權限):" #Need config SSO, 虛擬控制台或者VNC免登陸方式
#可以設置管理卡的時鍾、使用“年月日時分秒”格式。
echo -e "\n\n=======可以設置管理卡的時鍾、使用 年月日時分秒 格式。" #dell反饋管理卡沒有時間設置,只有BIOS時間和NTP
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time set
}
echo >$HOST-report.txt
getinfo 2>&1 |tee -a $HOST-report.txt
operation 2>&1 |tee -a $HOST-report.txt
extrainfo 2>&1 |tee -a $HOST-report.txt
extraop 2>&1 | tee -a $HOST-report.txt
========================================================================================================================================================================================
其他特殊說明:
一般服務器通過操作系統帶內獲取帶外IPMI地址命令:ipmitool lan print 1
H3C的服務器 操作系統內查看帶外IPMI地址命令:ipmitool lan print 8