#!/bin/bash # 사용자 이름 및 비밀번호 설정 IDRAC_USER="root" IDRAC_PASS="calvin" # IP 주소 파일 경로 인자 받기 if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi IP_FILE=$1 XML_FILE=$2 # 추가된 부분 echo "스크립트 실행 중: IP 파일 경로 - $IP_FILE, XML 파일 경로 - $XML_FILE" # 로그 추가 if [ ! -f "$IP_FILE" ]; then echo "IP file $IP_FILE does not exist." exit 1 fi if [ ! -f "$XML_FILE" ]; then echo "XML file $XML_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) echo "Applying configuration to $IDRAC_IP using XML file $XML_FILE" # 로그 추가 # DellEMC Server 설정 명령어 local hwinventory=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set -t xml -f $XML_FILE) echo "명령어 실행 완료: $hwinventory" # 명령어 실행 결과 로그 추가 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 "all Config 완료 시간: $ELAPSED_HOURS 시간, $ELAPSED_MINUTES 분, $ELAPSED_SECONDS 초."