![使用 Cygwin 从终端获取 CPU 温度?](https://linux22.com/image/1374006/%E4%BD%BF%E7%94%A8%20Cygwin%20%E4%BB%8E%E7%BB%88%E7%AB%AF%E8%8E%B7%E5%8F%96%20CPU%20%E6%B8%A9%E5%BA%A6%EF%BC%9F.png)
我在 Windows 8 上使用 Cygwin 64,想使用 bash 接口获取 CPU 温度(4 核以及 GPU 温度)。这可能吗?我正在使用温度监视器应用程序,并通过 Rainmaker 进行接口,但我想按照我选择的间隔将它们打印到文本文件中,因为我想对我的一些代码进行基准测试,看看它如何使计算机升温。
有任何想法吗?
答案1
Speed Fan 有日志记录选项。在配置中启用它。您将在安装 Speed Fan 的目录中找到日志文件。在我的情况下是Program Files\SpeedFan\SFLog(date).csv
我安装了Unix工具适用于 Windows。如果我理解正确的话,Cygwin
它具有与 Windows 相同的功能,UnixTools
并允许您在 Windows 中使用类 Unix 命令。
现在,我们有了日志文件(每 3 秒更新一次),其中包含我们想要的所有数据。我们可以使用它通过以下脚本从 SpeedFan 获取最新的值:
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
tail -n 1 "C:\Program Files\SpeedFan\SFLog%mydate%.csv" | gawk {print$2}
首先,我们将变量设置mydate
为当前日期,格式与 Speed Fan 日志相同。我们需要它来查找最新的日志文件。
之后我们使用命令尾巴可以选择-n 1
获取文件的最后一行(最新数据)。
我们将这一行提供给呆呆地带有选项的命令{print$2}
可以获取行的第二个“列”,因为第一个“列”是时间戳。
因此脚本将回显日志文件第二列的最新值。如果您需要的不只是一个值 - 请创建另一个脚本,通过为 提供选项来请求第三{print$3}
列gawk
。
假设 SpeedFan 的日志文件具有以下格式:
Timestamp CPU1_temp CPU2_temp MotherBoard_temp CPUFan_RPM
您可以有 4 个脚本 - 每个脚本都会获取其中一个值(使用 的gawk
选项{print$X}
来确定它将读取哪一列)。
现在,当其他程序需要 SpeedFan 的温度读数时,您就可以从其他程序调用这些脚本。