[РЕШЕНО] средняя температура процессора

Искусство написания bash скриптов. Делимся своими наработками
Ответить
Аватара пользователя
lumberjack
Модератор
Сообщения: 1009
Зарегистрирован: 30 сен 2012, 04:04
Темы: 152
Откуда: Сургут
Статус: Не в сети

[РЕШЕНО] средняя температура процессора

Сообщение lumberjack » 16 дек 2012, 07:17

накалякал такое:

Код: Выделить всё

#!/bin/bash
T1=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==1 {print}'`
T2=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==2 {print}'`
T3=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==3 {print}'`
T4=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==4 {print}'`
T5=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==5 {print}'`
T6=`find /sys/devices/platform -iname temp*_input | xargs cat | awk 'NR==6 {print}'`
AT=$(echo $((T1 + T2 + T3 + T4 + T5 + T6))/6 )
echo $((AT/1000)) 
exit 0; 
можно конечно универсальное решение сделать, но у меня не получилось...

Аватара пользователя
ZEN
Администратор
Сообщения: 1330
Зарегистрирован: 27 сен 2012, 18:23
Темы: 204
Откуда: Украина, Одесса
Статус: Не в сети

Re: средняя температура процессора?

Сообщение ZEN » 16 дек 2012, 08:59

у меня в /sys/devices/platform/* находятся датчики материнской платы(?), потому универсально для меня работает вот так:

Код: Выделить всё

find /sys -iname temp*_input | grep -v platform | xargs cat | awk '{temp+=$1} {corecount+=1} END {print temp/1000/corecount}'
Но я не знаю как будет работать код, если будут еще устройства на шине PCI с датчиками температуры. Так что желающим по-экспериментировать стоит учитывать этот фактор.

Проверить в каком каталоге, в команде выше , находятся файлы temp*_input можно командой:

Код: Выделить всё

find /sys -iname temp*_input | grep -v platform | xargs -l1 dirname | sort | uniq
Например, в моем случае результат:
/sys/devices/pci0000:00/0000:00:18.3

где 00:18.3 - адрес устройства на шине PCI. Узнать что это за устройство теперь можно так:

Код: Выделить всё

lspci | grep 00:18.3
В моем случае, результат:

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

это подтверждает, что нахожу я датчики температуры процессора AMD Athlon64.

Если в результате будет список устройств больше и в списке отнюдь не только датчики процессора, просьба отписаться, будем искать универсальный подход :)
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
lumberjack
Модератор
Сообщения: 1009
Зарегистрирован: 30 сен 2012, 04:04
Темы: 152
Откуда: Сургут
Статус: Не в сети

Re: средняя температура процессора?

Сообщение lumberjack » 23 дек 2012, 14:54

у меня с grep -v platform показывало невесть что
с вариантом grep -v platform

Код: Выделить всё

find /sys/ -iname temp*_input | grep -v platform | xargs cat | awk '{temp+=$1} {corecount+=1} END {print temp/1000/corecount}'
38.75
а с вариантом grep coretemp стала отображаться средняя температура по ядрам

Код: Выделить всё

find /sys/ -iname temp*_input | grep coretemp | xargs cat | awk '{temp+=$1} {corecount+=1} END {print temp/1000/corecount}' | awk -F. '{print $1}'
26
по части определения устройства на шине, у меня такая вот каша)

Код: Выделить всё

find /sys -iname temp*_input | grep -v platform | xargs -l1 dirname | sort | uniq
/sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:07/ATK0110:00/hwmon/hwmon0

Аватара пользователя
ZEN
Администратор
Сообщения: 1330
Зарегистрирован: 27 сен 2012, 18:23
Темы: 204
Откуда: Украина, Одесса
Статус: Не в сети

Re: средняя температура процессора?

Сообщение ZEN » 10 сен 2013, 18:17

Еще один вариант получить независимо от модели процессора температуру

Код: Выделить всё

cat /sys/class/hwmon/hwmon0/device/temp*_input | awk '{temp+=$1} {corecount+=1} END {print temp/1000/corecount}'
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей