Loading... ## 前言 --- 在Ubuntu/Debian平台需要查看存储设备的各种状态, 特别是长期运行期间的温度信息. 示例场景: 在PVE8.1(Debian12)下查看系统盘与仓库盘的硬盘温度信息. * 240826补充: 对于控制器直通的硬盘(eg: M.2), 在PVE宿主机通过smartctl或者sensors命令无法看到设备和温度信息 ## smartctl --- `smartmontools`提供了一种通用方式查看磁盘的各种信息, 包括温度, 磁盘健康状态, 支持主流各类磁盘(NVME/SATA等). **安装** ```bash sudo apt-get install smartmontools -y # 可选, 查看系统存储设备 sudo apt-get install lsscsi -y ``` **执行** * 命令模板: `sudo smartctl -a /dev/sdX | grep Temperature`, 其中/dev/sdX为目标磁盘 ```bash # 查看系统磁盘设备 root@pve:~# lsscsi [1:0:0:0] disk ATA Samsung SSD 860 4B6Q /dev/sda [N:0:4:1] disk Samsung SSD 970 EVO Plus 2TB__1 /dev/nvme0n1 # NVME硬盘温度查看 root@pve:~# smartctl -a /dev/nvme0n1 | grep Temperature Temperature: 36 Celsius Warning Comp. Temperature Time: 0 Critical Comp. Temperature Time: 0 Temperature Sensor 1: 36 Celsius Temperature Sensor 2: 33 Celsius root@pve:~# smartctl -a /dev/nvme0 | grep Temperature Temperature: 36 Celsius Warning Comp. Temperature Time: 0 Critical Comp. Temperature Time: 0 Temperature Sensor 1: 36 Celsius Temperature Sensor 2: 31 Celsius # SATA硬盘温度查看 root@pve:~# smartctl -a /dev/sda | grep Temperature 190 Airflow_Temperature_Cel 0x0032 072 053 000 Old_age Always - 28 ``` 示例温度输出位置 ![示例温度输出](https://zoe.red/usr/uploads/2024/01/1324068203.png) ## sensors --- `lm-sensors`提供的`sensors`命令可以查看系统温度, 包括CPU/主板/NVME硬盘等(*对于SATA硬盘温度不支持?* ) **安装** ```bash sudo apt-get install lm-sensors -y ``` ~~**配置**~~ * 在安装`lm-sensors`后,你需要运行配置命令以便系统能够正确识别和读取传感器。运行以下命令: ```bash sudo sensors-detect ``` ~~**加载内核模块**~~ * 在完成配置后,你需要加载相应的内核模块以使传感器生效。运行以下命令: * 或者,你可以重新启动计算机来加载内核模块。 ```bash sudo service kmod start ``` **执行** * 运行环境: Intel的NUC13 i7厚板小主机 + PVE8.1系统 ```bash root@pve:~# sensors iwlwifi_1-virtual-0 (无线网卡) Adapter: Virtual device temp1: N/A acpitz-acpi-0 (主板) Adapter: ACPI interface temp1: +31.0°C (crit = +105.0°C) coretemp-isa-0000 (CPU) Adapter: ISA adapter Package id 0: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 0: +25.0°C (high = +100.0°C, crit = +100.0°C) Core 4: +21.0°C (high = +100.0°C, crit = +100.0°C) Core 8: +28.0°C (high = +100.0°C, crit = +100.0°C) Core 12: +25.0°C (high = +100.0°C, crit = +100.0°C) Core 16: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 17: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 18: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 19: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 20: +27.0°C (high = +100.0°C, crit = +100.0°C) Core 21: +27.0°C (high = +100.0°C, crit = +100.0°C) Core 22: +27.0°C (high = +100.0°C, crit = +100.0°C) Core 23: +27.0°C (high = +100.0°C, crit = +100.0°C) nvme-pci-0100(NVME硬盘. 970EVO PLUS) Adapter: PCI adapter Composite: +34.9°C (low = -273.1°C, high = +84.8°C) (crit = +84.8°C) Sensor 1: +34.9°C (low = -273.1°C, high = +65261.8°C) Sensor 2: +30.9°C (low = -273.1°C, high = +65261.8°C) ``` *补充:* 使用UBuntu22.04.4系统(内核版本6.5), 硬件为`AMD Ryzen 9 3900 处理器` 以及 `MSI X570 ACE主板`, 部署后执行sensors无法正常获取CPU温度信息, 暂不清楚原因以及解决办法. (240322) THE END 本文作者:将夜 本文链接:http://zoe.red/2024/154.html 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。 最后修改:2024 年 09 月 12 日 © 允许规范转载 赞 1 如果觉得我的文章对你有用,请随意赞赏
2 条评论
我有一台桌面版ubuntu22.04,锐龙7900x可以用sensors查看cpu温度,会显示
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +73.9°C
Tccd1: +70.6°C
Tccd2: +69.8°C
但另一台装的命令行版就只能显示固态温度了,搞半天无法获取cpu温度
感觉不是Ubuntu-server系统相关的锅. 另一台不显示CPU温度的处理器也是Ryzen 7000系列的么? 或者就是同型号么, 按说 sensors工具的适配应该对于同一系列都一样. 真想大概还是AMD平台相关驱动和软件适配不那么给力吧, 毕竟不像称霸pc那么久的intel, 一有更新各方就会快速适配