Linux怎么监控物理硬盘的工作温度防止过热

冬杰君_7393

冬杰君_7393

2026-10-24

376人浏览

原创

最可靠的是用 smartctl -a 读取硬盘固件内置温度传感器(如 temperature_celsius、airflow_temperature_cel 或 temperature),因其直接反映盘体真实温度,优于外部传感器;执行前需启用 smart,注意厂商字段差异、单位换算、硬件兼容性及轮询频率控制。

linux怎么监控物理硬盘的工作温度防止过热

用 smartctl -A 读取硬盘自身传感器温度最可靠

硬盘固件内置的温度传感器(如 Temperature_Celsius 或 Drive_Temperature)是判断其工作状态的直接依据,比主板或机箱外部传感器更贴近盘体真实发热源。不要依赖 hddtemp 或 lm-sensors 的读数设告警阈值——它们测的是接口附近或环境温度,偏差常达 5–10°C。

执行命令前确认 SMART 已启用:sudo smartctl -s on /dev/sda。然后用固定组合快速提取:

sudo smartctl -A /dev/sda | grep -i "temperature\|temp_.*c"

注意以下几点:

  • 不同厂商字段名不同:希捷常用 Airflow_Temperature_Cel(ID 190),西数/东芝多为 Temperature_Celsius(ID 194),三星 SSD 可能是 Temperature(ID 231)
  • 数值单位统一为 ℃,但部分盘 Raw 值需换算(如 342 表示 34.2℃),优先看 Value 列而非 Raw_Value
  • RAID 卡后端盘或老旧 SATA 盘可能不暴露该属性,grep 无输出 ≠ 命令失败,而是硬件未上报

别信“实时”,watch 轮询要控制频率和参数

smartctl 本身不提供流式接口,所谓“实时监控”只能靠外部轮询驱动。但频繁调用会唤醒休眠盘、干扰 NVMe 主控休眠状态,还可能触发硬盘固件限频。

生产环境建议间隔 ≥30 秒,且必须加 -d nvme(NVMe 盘)或 -d sat(SATA 盘挂接在 LSI/PERC 卡后):

watch -n 30 'sudo smartctl -d nvme -A /dev/nvme0n1 | grep -i temperature'

更轻量的做法是用 JSON 输出 + jq 提取,避免重复解析文本:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
sudo smartctl -j -A /dev/sda | jq '.temperature.value'

如果没装 jq,可用 awk 替代,但注意字段顺序不稳定,推荐固定匹配行:

sudo smartctl -A /dev/sda | awk '/Temperature_Celsius/ {print $10}'

温度告警不能只看单点值,得盯趋势和临界阈值

一块盘从 42℃ 升到 48℃ 只用 90 秒,比稳定在 52℃ 更危险——前者说明散热失效或负载突增,后者可能是环境高温下的常态。SMART 属性里的 Worst 和 Thresh 才是关键:

  • Worst 是该属性历史最低值(越小越差),不是当前值;持续下降说明老化加速
  • Thresh 是厂商设定的硬性阈值(如希捷常为 10),当 Value ≤ Thresh 时,SMART 状态已标红
  • 机械盘安全上限建议 ≤50℃,SSD ≤60℃;但东芝部分型号 Thresh 设为 50,实际运行到 48℃ 就该干预

脚本中判断逻辑应类似:

temp=$(sudo smartctl -A /dev/sda | awk '/Temperature_Celsius/ {print $10}'); [ "$temp" -gt 50 ] && echo "ALERT: /dev/sda > 50°C"

真正防过热得联动风扇控制,光监控没用

监控只是第一步。Linux 下没有通用风扇策略,必须结合硬件能力落地:

  • 若主板支持 IPMI,用 ipmitool 调整风扇曲线(如 ipmitool raw 0x30 0x30 0x01 0x00 设为全速)
  • 嵌入式设备常见 GPIO 控制风扇,需写内核模块或通过 sysfs(如 /sys/class/hwmon/hwmon1/pwm1)调节占空比
  • 对 NVMe 盘,可配合 nvme-cli 的 get-feature 查 thermal management 设置,但多数消费级盘不开放写权限

最容易被忽略的一点:很多工控板 BIOS 锁死了风扇策略,Linux 层再怎么调 pwm 都无效——得先进 BIOS 关闭 “Smart Fan” 或 “Q-Fan Control” 类选项,把控制权交还给 OS。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4210

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3553

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2793

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6810

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6462

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3713

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3225

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3439

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习