GPU온도를 모니터링하는 스크립트

2024. 9. 2. 18:40서버

#!/bin/bash

# 설정
EMAIL="test@gmail.com"  # 알림을 받을 이메일 주소
SUBJECT="GPU Temperature Alert"  # 이메일 제목
THRESHOLD=80  # 온도 임계값

FLAG=1
# 무한 루프
while [ "$FLAG" -eq 1 ]; do
    # GPU의 개수를 확인
    GPU_COUNT=$(nvidia-smi --query-gpu=count --format=csv,noheader,nounits 2>/dev/null | tr -d '[:space:]')
    
    # GPU가 없거나 오류 발생 시 루프 종료
    if [[ -z "$GPU_COUNT" || "$GPU_COUNT" == "Nodeviceswerefound" ]]; then
        echo "No GPUs found or nvidia-smi command failed."
        break
    fi
    
    # 각 GPU에 대해 온도를 확인
    for ((i=0; i<${GPU_COUNT:0:1}; i++)); do
        # GPU i의 온도 가져오기 (줄바꿈 제거)
        TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i ${i} 2>/dev/null | tr -d '[:space:]')

        # 온도가 숫자인지 확인 (GPU가 없을 경우를 대비)
        if [[ ! "$TEMP" =~ ^[0-9]+$ ]]; then
            echo "Failed to retrieve temperature for GPU $i."
            continue
        fi

        
        # 온도가 임계값을 넘는지 확인
        if [ "$TEMP" -gt "$THRESHOLD" ]; then
            # 이메일 내용 생성
            MESSAGE="Warning: GPU $i temperature has exceeded $THRESHOLD°C.\nCurrent temperature: $TEMP°C."
            # 이메일 전송
            echo -e "$MESSAGE" | mail -s "$SUBJECT" "$EMAIL"
            FLAG=0
            break
        fi
    done
    sleep 3600
done

 

'서버' 카테고리의 다른 글

SCP - IP를 통해 파일 옮기기  (1) 2024.06.19
GPU CLOCK  (3) 2024.05.09
PCIE Check in Ubuntu  (2) 2024.04.20
Ubuntu Version Check  (1) 2024.04.08
Nvidia driver 설치 후 GPU가 안 잡힐 때  (0) 2024.01.30