Command & Development/Shell Script

[Shell Script] iLO Health Check Script

Richard.Ryu 2023. 2. 21. 14:33
반응형

이 스크립트를 활용하기 위해서는 HPE 에서 제공하는 perl script 와 xml 파일이 필요합니다.

 

해당 파일은 업로드 해두었습니다.

locfg.pl
0.03MB
Get_EmHealth.xml
0.00MB

 

또한, Script 안에 list 파일을 확인하도록 되어 있으므로, List 파일 생성 및 Update가 필요합니다.

 

마지막 단에는 생성한 파일들에 대해 지우는 것을 물어보도록 되어있습니다.

#!/bin/bash
###########################################################################################
######## require locfg.pl, Get_EmHealth.xml            			        
######## locfg.pl and Get_EmHealth.xml same path and in home_dir 	     
######## perl locfg.pl -s [iLO IP] -f [Use config file] -u [User] -p [Password]
###########################################################################################

date=`date +%Y%d%m%H`
#need home_dir path changing 
home_dir=/######/health_check
work_dir=/######/####/$date

mkdir -p $work_dir


hp_ilo_user="######"
hp_ilo_pass="######"


date
echo "================================================================================================================"
printf "%21s | %8s | %8s | %8s | %9s | %8s | %8s \n" Server_Name FAN TEMP POWER PROCESSOR MEMORY STORAGE
echo "================================================================================================================"

for ip in `cat $home_dir/ilo_check.list`
	do
	health_check_ip=`cat $home_dir/ilo_check.list | awk -F"," '{print $1}' <<< $ip`
	server_name=`cat $home_dir/ilo_check.list | awk -F"," '{print $2}' <<< $ip`
	perl locfg.pl -s $health_check_ip -f Get_EmHealth.xml -u $hp_ilo_user -p $hp_ilo_pass >> $work_dir/ilo_check.txt
	cat $work_dir/ilo_check.txt | egrep "STORAGE STATUS|MEMORY STATUS|FANS STATUS|TEMPERATURE STATUS|PROCESSOR STATUS|POWER_SUPPLIES STATUS"| sed 's/[^a-z,A-Z,0-9,=]//g' | awk -F"=" '{print $2}' | xargs echo > $home_dir/health.txt
	FAN=`awk '{print $1}' $home_dir/health.txt`
	TEMP=`awk '{print $2}' $home_dir/health.txt`
	POWER=`awk '{print $3}' $home_dir/health.txt`
	PROCESSOR=`awk '{print $4}' $home_dir/health.txt`
	MEMORY=`awk '{print $5}' $home_dir/health.txt`
	STORAGE=`awk '{print $6}' $home_dir/health.txt`
	printf "%21s | %8s | %8s | %8s | %9s | %8s | %8s \n" $server_name $FAN $TEMP $POWER $PROCESSOR $MEMORY $STORAGE
done

echo "Typed number 1 -> Remove File, 2 -> Not Remove File"

read count
echo "[$count]"
if [[ $count == "1" ]]
then
	echo "Do you want really Remove File?"
	echo "-------------------------------"
	echo "Retyped the number"
	read count1
   if [[ $count1 == "1" ]]
   then 
	rm -rf $work_dir 
	rm -rf $home_dir/health.txt
   fi
else [[ -z $count ]] && [[ $count -gt 1 ]]
	echo "Please check your typed number"
fi

정상적으로 실행 시 아래와 같습니다.

 

서버 이름은 가립니다.

 

반응형