2020년 8월 13일 목요일

linux 온도 기록하기

문제: linux 구동시 주기적으로 시스템의 온도를 기록하자.

<참고: https://unix.stackexchange.com/questions/269858/does-linux-typically-log-system-temperature-data>


해결:
CPU
sensord -> 시스템온도와 voltage를 system log에 기록

sudo apt-get install lm-sensors
sudo sensors-detect
sudo service module-init-tools start
sudo service module-init-tools restart
sensors


HDD
hddtemp -> hard drive의 온도를 기록

sudo apt-get install hddtemp
sudo hddtemp /dev/sda /dev/sdb

but 둘다 수동으로 타이핑한 뒤부터 기록함.

GPU
nvidia-smi -q -d temperature | grep GPU | perl -pe '/^GPU/ && s/\n//' | grep ^GPU


주기적으로 수행 후, 기록하기(CPU, GPU만)
1. shell script만들기
logging_temp.sh

#!/bin/sh
date
sensors
nvidia-smi -q -d temperature | grep GPU | perl -pe '/^GPU/ && s/\n//' | grep ^GPU
echo ""

2. crontab에 등록하며 로깅설정하기
crontab -e
맨아래에 추가 (***** 빼면 안됨)

* * * * * logging_temp.sh >> /home/yochin/Desktop/log_temp.log 2>&1

3. crontab -l 로 확인하기

4. 만약에 permission denied라면?

chmod 744 loggin_temp.sh로 sh의 권한변경

ps -ef | grep cron 으로 pid확인 후, sudo kill -9 pid로 죽임