Linux 通常會記錄系統溫度數據嗎?
主流 Linux 發行版通常會記錄系統溫度數據,例如 CPU 或 HDD 溫度嗎?如果是這樣,在哪裡可以找到這些日誌?
我不知道預設情況下記錄此類資訊的主流 Linux 發行版。大多數主流 Linux 發行版確實包含各種可以記錄溫度的包,其中一些包預設設置為記錄。
以 Debian 為例,
sensord
它會定期將它知道的所有資訊(系統溫度、電壓等)記錄到系統日誌中,但需要手動配置才能記錄任何有用的資訊;hddtemp
可以設置為定期記錄硬碟溫度。許多其他工具可以檢索此類資訊(使用 IPMI、SNMP 等),但在大多數情況下,它們需要再次配置,以便能夠首先訪問資訊,或者能夠解釋它,或兩者。這種配置要求意味著很難設置一個通用分佈,預設情況下以有意義的方式記錄溫度。(我見過的大多數係統都至少有一個無效的監控條目,如果它是自動配置的,它會引發警報!)當然,完全可以為您自己的系統設置安裝程序映像,因為您知道什麼它們是什麼以及它們是如何配置的……一旦你配置了提取溫度資訊所需的各種工具,你最好使用適當的監控工具(例如Munin)來記錄溫度,而不是依賴於系統日誌。這樣,您還可以設置警報,以便在事情開始出錯時得到通知。
擴展該
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
‘範例配置文件給出了一些想法。