Где я могу найти файл журнала температуры моей системы?

Итак, у меня установлен пакет lm-sensors, и я могу запустить sensors и получить подробную информацию о температуре моей системы, например:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +45.0°C  (crit = +120.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +46.5°C  (high = +70.0°C)
                       (crit = +115.0°C, hyst = +115.0°C)

Что я хотел бы сделать, так это возможность просматривать журнал (скажем, каждые 5 минут), что температура. Это возможно?

7
задан 20 January 2012 в 02:28

1 ответ

Вот то, что я сделал для входа временных файлов.

Предпосылки: lm-sensors dateutils gnuplot (gnuplot для визуализации, не необходимой)

Можно установить вышеупомянутое использование следующей команды в терминале.

sudo apt install lm-sensors dateutils gnuplot

Прибытие в основной сценарий:

#!/bin/bash 
# Log temperature over some time  interval given as days, hours, minutes or seconds.
# enter the variables according to your usage in the following seciton :
duration="$1"  #duration format is  ndnhnmns where n is some number and d is day,
# h is hours, m is minutes and s is seconds. For example, 4d , 4d5h30m , 5m30s, 6h30m30s are all valid.

step="$2"
#----------------------------------------------------------------------
#starting time taken as current
dt=$(date '+%Y-%m-%dT%H:%M:%S');
#et=$(date '+%Y-%m-%dT%H:%M:%S');

#----------------------------------------------------------------------
a=$(dateutils.dadd $dt  $duration )
b=$(dateutils.ddiff $dt $a -f '%S')
echo $a $b

ntimes=$((b/step))
echo $ntimes


echo "logging...";
rm t_log.txt
nms=0
while [  $nms -lt $ntimes ];  do
        sensors | grep -A 0  'Core' | cut -c18-21 |tr "\n" "\t" >> temp.txt
        let nms=nms+1
        sleep  $step
        now=$(date +"%m/%d/%Y %T")
#       echo $now
        echo -e "$(cat temp.txt)""\t$now"  >> t_log.txt
        rm temp.txt
done


#plotting using gnuplot to get a beautiful plot. 
day=86400 #different x-axis for different  time duration. A day = 86400 seconds

fcode=$(date "+%Y-%m-%d_%H%M%S") # generate a time stamp 
#echo $fcode
if [[ "$b" > "$day" ]]
then
        gnuplot -e "filename='temp_plot_$fcode'" plot_day
else
        gnuplot -e "filename='temp_plot_$fcode'" plot_time
fi
#end-of-script---------------------------------------------------------

gnuplot для команды в конце нужны еще два файла, которые следуют.

файл: plot_day

set terminal pngcairo size 1200,600 enhanced font 'Verdana'
set output sprintf('%s.png', filename)
set timefmt '%d/%m/%Y %H:%M:%S'
set xdata time
set format x '%m/%d'
set grid ytics lc rgb "#bbbbbb" lw 2 lt 1
set yr [20:100]
set title "Temperature log"
set xlabel "Date (month:day)"
set ylabel "degree Celcius"

plot "t_log.txt" using 7:1 with lines title "core:1" linewidth 3,\
     "t_log.txt" using 7:2 with lines title "core:2" linewidth 3 ,\
     "t_log.txt" using 7:3 with lines title "core:3" linewidth 3 ,\
     "t_log.txt" using 7:4 with lines title "core:4" linewidth 3 ,\
     "t_log.txt" using 7:5 with lines title "core:5" linewidth 3 ,\
     "t_log.txt" using 7:6 with lines title "core:6" linewidth 3
replot

файл: plot_time

set terminal pngcairo size 1200,600 enhanced font 'Verdana'
set output sprintf('%s.png', filename)
set timefmt '%d/%m/%Y %H:%M:%S'
set xdata time
set format x '%H:%M:%S'
set grid ytics lc rgb "#bbbbbb" lw 2 lt 1
set yr [20:100]
set title "Temperature log"
set xlabel "Time (Hour:Minute:Second) "
set ylabel "degree Celcius"
plot "t_log.txt" using 7:1 with lines title "core:1" linewidth 3,\
     "t_log.txt" using 7:2 with lines title "core:2" linewidth 3 ,\
     "t_log.txt" using 7:3 with lines title "core:3" linewidth 3 ,\
     "t_log.txt" using 7:4 with lines title "core:4" linewidth 3 ,\
     "t_log.txt" using 7:5 with lines title "core:5" linewidth 3 ,\
     "t_log.txt" using 7:6 with lines title "core:6" linewidth 3 
replot

Запущение скрипта Сохраняет его, делает его исполняемым файлом и выполняет его как,

./script_name $nd$nh$nm$ns m

n некоторое число, в то время как d=days, h=hours, m=minutes, s=seconds

m размер шага измерения в секундах. Измерения будут проведены после интервала m секунды

Пример использования.

./log_script.sh  3d12h 30

(объяснение: журнал в течение 3 дней 12 часов с измерением в каждом 30 секунд)

./log_script.sh  12m30s 10

./log_script.sh  45m 2

./log_script.sh  55s 1

{Это может использоваться с cron для регулярных журналов. Я использую этот сценарий только при сравнительном тестировании и/или разгоне.}


Вывод

Это пишет сценарий, генерирует файл журнала как t_log.txt который имеет температуру ядер процессора. (Для системы с различными ядрами будет небольшое изменение. Отредактируйте строку в gnuplot файлах сценария, которые являются plot_time и plot_day а именно, "t_log.txt" using last_column:column_for_each_core with lines title "core:6" linewidth 3).

Вывод в t_log.txt похож на следующее, (так как это - шесть базовых машин следовательно 6 столбцов временных файлов.)

28.0    28.0    27.0    27.0    27.0    27.0            12/18/2016 00:50:21
28.0    26.0    27.0    26.0    27.0    27.0            12/18/2016 00:50:23
27.0    27.0    26.0    26.0    27.0    26.0            12/18/2016 00:50:25
28.0    27.0    29.0    26.0    27.0    26.0            12/18/2016 00:50:27
26.0    27.0    26.0    28.0    27.0    26.0            12/18/2016 00:50:29
27.0    26.0    28.0    26.0    27.0    26.0            12/18/2016 00:50:31
27.0    26.0    26.0    26.0    27.0    26.0            12/18/2016 00:50:33
27.0    27.0    28.0    28.0    27.0    27.0            12/18/2016 00:50:35

И сгенерированный график похож на следующее:

Plot generated from gnuplot

Сценарий может генерировать такие графики для очень длинных журналов или многих других параметров. Также возможно вывести на печать промежуточный вход, для которого просто нужна модификация сценария. Сценарий может быть улучшен много и журналирование нескольких других параметров как Использование оперативной памяти, загрузка ЦП, действие жесткого диска может быть добавлено. Наслаждайтесь!

6
ответ дан 20 January 2012 в 13:28

Другие вопросы по тегам:

Похожие вопросы: