跟踪一段时间内的温度

跟踪一段时间内的温度

有没有可以跟踪 CPU 温度随时间变化的应用程序?我知道传感器应用程序的功能lm-sensors,但如果我想比较 N 周前到今天的热量与 CPU 负载,该怎么办?

我可能能够用 C 语言编写一个,但我想知道是否已经存在这样的软件。

答案1

我们创建了一款名为 s-tui 的工具来实现这一功能。它可以让您随时间监控温度频率和 CPU 利用率。您还可以将数据保存为 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-tuisudo s-tui

主要特点包括:

  • 在终端运行
  • 让您运行压力测试来检查系统稳定性(需要stress安装)
  • 跟踪每次会话的温度和最高温度

您可以直接下载并运行可执行文件 https://github.com/amanusk/s-tui/releases/ chmod +x s-tui ./s-tui

所有这些说明都可以在 github 上的 README 中找到

答案2

有一个易于使用的监控软件包monitorix用 perl 编写。它用于rrdtool保存旧数据,并提供自己的迷你网络服务器,以便您轻松浏览最近活动的图表,请参阅截图

没有适用于 Ubuntu 的软件包,但由于不需要编译,因此安装起来相当简单,请参阅github

它记录 CPU 温度和负载,并提供单独的图表,但我不知道设计自己的图表有多简单。你总是可以使用rrd工具直接显示数据,但需要付出一些努力才能正确使用。

LM 传感器图表

答案3

只需运行一个 cron 作业。

  1. 创建一个像 temp_logs 这样的文件夹。
  2. 将以下文件作为 shell 脚本放在此文件夹中,例如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

相关内容