主流Linux发行版通常会记录系统温度数据,例如CPU或HDD温度吗?如果是这样,在哪里可以找到这些日志?
答案1
我不知道有哪个主流 Linux 发行版默认记录此类信息。大多数主流 Linux 发行版确实包含各种可以记录温度的软件包,其中一些软件包默认设置为记录温度。
以Debian为例,sensord
它会定期将它所知道的所有信息(系统温度、电压等)记录到系统日志中,但需要手动配置才能记录任何有用的信息;hddtemp
可以设置为定期记录硬盘温度。许多其他工具可以检索此类信息(使用 IPMI、SNMP 等),但在大多数情况下,它们需要进行配置,要么能够首先访问信息,要么能够解释它,或两者。
此配置要求意味着很难建立一个以有意义的方式默认记录温度的通用发行版。 (我见过的大多数系统都至少有一个无效的监控条目,如果自动配置,它会引发警报!)当然,完全有可能为您自己的系统设置安装程序映像,因为您知道什么它们是什么以及它们是如何配置的......一旦您配置了提取温度信息所需的各种工具,您最好使用适当的监控工具(例如穆宁)来记录温度而不是依赖系统日志。这样,您还可以设置警报,以便在出现问题时收到通知。
扩展该sensord
示例,您可以在系统日志中找到其输出,其中sensord
包含进程名称;因此要么查找sensord
in /var/log/syslog
(默认情况下),要么运行journalctl -u sensord
。您将看到如下所示的定期日志(我已删除日期和主机名):
sensord[2489]: Chip: acpitz-virtual-0
sensord[2489]: Adapter: Virtual device
sensord[2489]: temp1: 27.8 C
sensord[2489]: temp2: 29.8 C
sensord[2489]: Chip: coretemp-isa-0000
sensord[2489]: Adapter: ISA adapter
sensord[2489]: Physical id 0: 33.0 C
sensord[2489]: Core 0: 29.0 C
sensord[2489]: Core 1: 30.0 C
sensord[2489]: Core 2: 26.0 C
sensord[2489]: Core 3: 29.0 C
sensord[2489]: Chip: nct6776-isa-0a30
sensord[2489]: Adapter: ISA adapter
sensord[2489]: in0: +1.80 V (min = +1.60 V, max = +2.00 V)
sensord[2489]: in1: +1.86 V (min = +1.55 V, max = +2.02 V)
sensord[2489]: in2: +3.41 V (min = +2.90 V, max = +3.66 V)
sensord[2489]: in3: +3.39 V (min = +2.83 V, max = +3.66 V)
sensord[2489]: in4: +1.50 V (min = +1.12 V, max = +1.72 V)
sensord[2489]: in5: +1.26 V (min = +1.07 V, max = +1.39 V)
sensord[2489]: in6: +1.04 V (min = +0.80 V, max = +1.20 V)
sensord[2489]: in7: +3.31 V (min = +2.90 V, max = +3.66 V)
sensord[2489]: in8: +3.22 V (min = +2.50 V, max = +3.60 V)
sensord[2489]: fan1: 1251 RPM (min = 200 RPM)
sensord[2489]: fan2: 0 RPM (min = 0 RPM)
sensord[2489]: fan3: 299 RPM (min = 200 RPM)
sensord[2489]: fan4: 1315 RPM (min = 0 RPM)
sensord[2489]: fan5: 628 RPM (min = 200 RPM)
sensord[2489]: SYSTIN: 32.0 C (limit = 80.0 C, hysteresis = 70.0 C)
sensord[2489]: CPUTIN: 33.0 C (limit = 85.0 C, hysteresis = 80.0 C)
sensord[2489]: AUXTIN: 24.0 C (limit = 80.0 C, hysteresis = 75.0 C)
sensord[2489]: PECI Agent 0: 31.0 C (limit = 95.0 C, hysteresis = 92.0 C)
sensord[2489]: PCH_CHIP_CPU_MAX_TEMP: 57.0 C (limit = 95.0 C, hysteresis = 90.0 C)
sensord[2489]: PCH_CHIP_TEMP: 0.0 C
sensord[2489]: PCH_CPU_TEMP: 0.0 C
sensord[2489]: beep_enable: Sound alarm enabled
sensord[2489]: Chip: jc42-i2c-9-18
sensord[2489]: Adapter: SMBus I801 adapter at 0580
sensord[2489]: temp1: 32.8 C (min = 0.0 C, max = 60.0 C)
sensord[2489]: Chip: jc42-i2c-9-19
sensord[2489]: Adapter: SMBus I801 adapter at 0580
sensord[2489]: temp1: 33.5 C (min = 0.0 C, max = 60.0 C)
sensord[2489]: Chip: jc42-i2c-9-1a
sensord[2489]: Adapter: SMBus I801 adapter at 0580
sensord[2489]: temp1: 34.0 C (min = 0.0 C, max = 60.0 C)
sensord[2489]: Chip: jc42-i2c-9-1b
sensord[2489]: Adapter: SMBus I801 adapter at 0580
sensord[2489]: temp1: 33.2 C (min = 0.0 C, max = 60.0 C)
为了得到这个,我必须确定需要哪些模块(使用sensors-detect
):默认情况下,系统只知道 ACPI 报告的温度,这实际上与任何东西都不对应(它们永远不会变化)。coretemp
给出 Intel 处理器上的 CPU 核心温度,nct6776
是主板的硬件监视器,jc42
是 DIMM 上的温度监视器。为了使其可用于自动监控,我至少应该禁用 ACPI 值并重新标记风扇,并更正 的fan4
最小值。还有许多其他配置可能性,lm_sensors
' 示例配置文件给出了一些想法。
答案2
某些硬盘驱动器会自动保存最近的温度历史记录。从man smartctl
:
scttemp、scttempsts、scttemphist - [仅限 ATA] 打印 SMART 命令传输 (SCT) 命令提供的磁盘温度信息。选项“scttempsts”打印 SCT 状态命令返回的当前温度和温度范围,“sctempst”打印温度限制和 SCT 数据表命令返回的温度历史表,“scttemp”打印两者。温度值在整个电源周期内得以保留。可以使用“-l scttempint,N[,p]”选项配置记录间隔,请参见下文。 SCT 命令是在 ATA8-ACS 中引入的,并且也受到许多 ATA-7 磁盘的支持。
smartctl -data -l scttemphist /dev/sda
如果驱动器支持,类似的命令将为您提供温度历史记录。例如:
Index Estimated Time Temperature Celsius
103 2017-06-27 11:10 31 ************
... ..( 24 skipped). .. ************
0 2017-06-27 15:20 31 ************
1 2017-06-27 15:30 30 ***********
... ..( 9 skipped). .. ***********
11 2017-06-27 17:10 30 ***********
12 2017-06-27 17:20 31 ************
13 2017-06-27 17:30 30 ***********
... ..( 51 skipped). .. ***********
65 2017-06-28 02:10 30 ***********
66 2017-06-28 02:20 31 ************
67 2017-06-28 02:30 32 *************
68 2017-06-28 02:40 31 ************
69 2017-06-28 02:50 30 ***********
70 2017-06-28 03:00 31 ************
71 2017-06-28 03:10 30 ***********
72 2017-06-28 03:20 30 ***********
73 2017-06-28 03:30 31 ************
74 2017-06-28 03:40 30 ***********
75 2017-06-28 03:50 31 ************
76 2017-06-28 04:00 31 ************
77 2017-06-28 04:10 30 ***********
... ..( 22 skipped). .. ***********
100 2017-06-28 08:00 30 ***********
101 2017-06-28 08:10 31 ************
102 2017-06-28 08:20 30 ***********
除此之外,您还需要配置/安装一个工具(请参阅 Stephen Kitt 的回答)。
答案3
我刚刚找到了“psensor”监视器,我发现它易于使用且方便:https://wpitchune.net/psensor/