Отслеживать температуру с течением времени

Есть ли приложение, которое позволяет отслеживать температуру процессора с течением времени? Я знаю о том, что приложение датчиков от lm-sensors делает, но что, если я хочу сравнить тепловую нагрузку с загрузкой процессора с N-недель назад до сегодняшнего дня?

Я мог бы написать один на C, но мне интересно, если такое программное обеспечение уже существует.

3 ответа

Мы создали инструмент для этого, который называется s-tui. Это позволяет отслеживать частоту температуры и загрузку процессора с течением времени. Вы также можете сохранить данные в CSV.

Код доступен на github: https://github.com/amanusk/s-tui

Вот как выглядит снимок экрана

Простейшая установка с помощью pip (менеджер пакетов python) sudo pip install s-tui Установите pip, если у вас его нет sudo apt-get install python-pip Установка также доступна через ppa, но она не имеет последних версий необходимых библиотек python. sudo add-apt-repository ppa:amanusk/python-s-tui sudo apt-get update sudo apt-get install python-s-tui

Тогда беги s-tui или же sudo s-tui

Ключевые особенности:

  • Работает в терминале
  • Позволяет запустить стресс-тест для проверки стабильности системы (требуется stress быть установленным)
  • Отслеживание температуры и максимальной температуры за сеанс

Вы можете скачать и запустить исполняемый файл напрямую https://github.com/amanusk/s-tui/releases/ chmod +x s-tui ./s-tui

Все эти инструкции доступны в README на github.

Существует простой в использовании пакет мониторинга monitorix, написанный на Perl. Оно использует rrdtool сохранить старые данные и предоставляет собственный мини-веб-сервер, чтобы вы могли легко просматривать графики последних действий, см. скриншоты.

Для Ubuntu нет пакета, но, поскольку он не требует компиляции, его довольно просто установить, смотрите github.

Он регистрирует температуру процессора и нагрузку, и предоставляет их отдельные графики, но я не знаю, насколько просто было бы создать свой собственный график. Вы всегда можете напрямую использовать rrdtool для отображения данных, но для его правильного использования требуются некоторые усилия.

Просто запустите работу cron.

  1. Создайте папку как temp_logs.
  2. Поместите следующий файл в качестве сценария оболочки в эту папку, например, temp_logging.sh, Сделайте скрипт исполняемым.

    #!/bin/bash 
    # Log temperatures of all cores individually.
    # Log temperature over some time using this script run as cron job. 
    # Set your interval given as days, hours, minutes or seconds as the cron job itself.
    
    #----------------------------------------------------------------------
    # log might become big, hence remove one line each after 5000 lines.
    lines=$(wc -l < temp_log.txt)
    if ["$lines" -gt 5000 ]
    then
        sed -i '1d' temp_log.txt
    fi
    #----------------------------------------------------------------------
    #output will be a txt file `temp_log.txt` which will have n columns for n cores and day and time.
    ( sensors | grep -A 0 'Core' | cut -c18-21|xargs | awk '{ sum += $1; n++ } END { if (n > 0) print sum / n; }'  ; sensors | grep -A 0 'Core' | cut -c18-21|xargs; echo $(date +"%m/%d/%Y %T" )) | xargs
    
  3. Установите задание cron для запуска этого скрипта в соответствии с вашими требованиями. Получить журнал, накопленный в файле temp_log.txt

Например, для каждой регистрации каждые 5 минут. тогда линия cron будет.

*/5 * * * * /path/to/script/temp_logging.sh

Вывод: первый столбец - средний, следующие 6 - для отдельных ядер, а затем день и время.

25 25.0 25.0 26.0 25.0 27.0 25.0 06/10/2017 14:54:59
25 25.0 25.0 26.0 25.0 27.0 25.0 06/10/2017 14:55:00
25 25.0 25.0 25.0 25.0 26.0 26.0 06/10/2017 14:55:01
25 25.0 25.0 25.0 25.0 26.0 26.0 06/10/2017 14:55:01
26 26.0 25.0 25.0 25.0 26.0 25.0 06/10/2017 14:55:02
Другие вопросы по тегам