#!/bin/bash # 사용자 이름 및 비밀번호 설정 IDRAC_USER="root" IDRAC_PASS="calvin" # IP 주소 파일 경로 인자 받기 if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi IP_FILE=$1 if [ ! -f "$IP_FILE" ]; then echo "IP file $IP_FILE does not exist." exit 1 fi # 정보 저장 디렉터리 설정 OUTPUT_DIR="idrac_info" mkdir -p $OUTPUT_DIR # iDRAC 정보를 가져오는 함수 정의 fetch_idrac_info() { local IDRAC_IP=$(cat $IP_FILE) # DellEMC Server #local set1=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.MemSettings.CorrEccSmi Disabled) #local set2=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.ProcSettings.ProcVirtualization Disabled) #local set3=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.BiosBootSettings.SetBootOrderEn NIC.PxeDevice.1-1,NIC.PxeDevice.2-1) #local set4=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.NetworkSettings.PxeDev2EnDis Enabled) #local set5=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.PxeDev2Settings.PxeDev2Interface NIC.Integrated.1-2-1) local set6=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.IntegratedDevices.EmbNic1Nic2 DisabledOs) #local set7=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.SysProfileSettings.SysProfile Custom) #local set8=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.SysProfileSettings.DynamicLinkWidthManagement Unforced) #local set9=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set BIOS.MiscSettings.ErrPrompt Disabled) local set10=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS jobqueue create BIOS.Setup.1-1 -r forced) rm -f $IP_FILE } export -f fetch_idrac_info export IDRAC_USER export IDRAC_PASS export OUTPUT_DIR # 시작 시간 기록 START_TIME=$(date +%s) # IP 목록 파일을 읽어 병렬로 작업 수행 fetch_idrac_info # 종료 시간 기록 END_TIME=$(date +%s) # 소요 시간 계산 ELAPSED_TIME=$(($END_TIME - $START_TIME)) ELAPSED_HOURS=$(($ELAPSED_TIME / 3600)) ELAPSED_MINUTES=$((($ELAPSED_TIME % 3600) / 60)) ELAPSED_SECONDS=$(($ELAPSED_TIME % 60)) echo "설정 완료." echo "수집 완료 시간: $ELAPSED_HOURS 시간, $ELAPSED_MINUTES 분, $ELAPSED_SECONDS 초."