有没有可以跟踪 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-tui
或sudo s-tui
主要特点包括:
- 在终端运行
- 让您运行压力测试来检查系统稳定性(需要
stress
安装) - 跟踪每次会话的温度和最高温度
您可以直接下载并运行可执行文件
https://github.com/amanusk/s-tui/releases/ chmod +x s-tui ./s-tui
所有这些说明都可以在 github 上的 README 中找到
答案2
答案3
只需运行一个 cron 作业。
- 创建一个像 temp_logs 这样的文件夹。
将以下文件作为 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
根据您的需求设置一个 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