#!/bin/bash

# 사용자 이름 및 비밀번호 설정
IDRAC_USER="root"
IDRAC_PASS="calvin"

# IP 주소 파일 경로 인자 받기
if [ -z "$1" ]; then
    echo "Usage: $0 <ip_file>"
    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 hwinventory=$(racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS set iDRAC.VirtualConsole.Port 25513)

    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 초."
