dmesg是Linux内核环形缓冲区的查看工具,主要记录系统启动及运行时的内核消息(如硬件初始化、驱动加载、错误事件)。要监控CPU温度,需结合传感器驱动加载信息和温度异常事件,以下是具体步骤:
CPU温度监控依赖硬件传感器(如Intel Coretemp、AMD AMDSensor等),系统启动时会自动检测并加载对应驱动。通过dmesg过滤传感器相关日志,可确认传感器是否正常识别:
sudo dmesg | grep -i "sensor\|thermal\|cpu temp"
示例输出(若传感器加载成功):
[ 2.345678] coretemp coretemp.0: CPUID signature mismatch, but continuing anyway [ 2.345679] coretemp coretemp.0: Detected Intel(R) Core(TM) i5-1230U CPU @ 1.30GHz [ 2.345680] coretemp coretemp.0: package id 0: +45.0°C (high = +80.0°C, crit = +100.0°C)
说明:上述输出表示系统识别到了Intel CPU的温度传感器,且给出了包温度(Package ID)及高低阈值。
若CPU温度超过阈值(如触发热节流),内核会记录相关警告或错误信息。通过以下命令过滤关键字,快速定位温度异常:
sudo dmesg | grep -i "thermal throttling\|overheat\|high temperature"
示例输出(若发生热节流):
[ 123.456789] thermal thermal_zone0: critical temperature reached (100 C), shutting down [ 123.456790] thermal thermal_zone0: CPU temperature above threshold, throttling enabled
说明:上述输出表示CPU温度达到临界值(100℃),系统触发了热节流(降低性能以降温)。
dmesg仅能显示传感器初始化和异常事件,无法实时查看当前温度。需安装lm-sensors工具(支持Intel/AMD等主流CPU),通过传感器驱动获取实时温度:
sudo apt install lm-sensors # Debian/Ubuntu安装命令 sudo sensors-detect # 检测硬件传感器(按提示选择"yes"启用所有推荐设置) sensors # 查看实时温度(核心温度、包温度等)
示例输出:
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +47.0°C (high = +80.0°C, crit = +100.0°C) Core 0: +44.0°C (high = +80.0°C, crit = +100.0°C) Core 1: +45.0°C (high = +80.0°C, crit = +100.0°C)
说明:lm-sensors的输出更直观,包含每个核心的温度及高低阈值,是日常监控CPU温度的常用工具。
high
(高阈值)是CPU允许的最高工作温度(超过会触发警告),crit
(临界值)是极限温度(超过会强制关机,防止硬件损坏)。/var/log/kern.log
(通过rsyslog
配置)或使用journalctl
(Systemd系统)查看历史日志:journalctl -k | grep -i "thermal\|sensor" # 查看内核日志中的温度相关事件
watch
命令实时刷新sensors输出:watch -n 2 sensors # 每2秒刷新一次温度信息
通过以上方法,可通过dmesg日志识别CPU温度传感器的状态及异常事件,结合lm-sensors工具实现实时监控,确保系统温度在安全范围内。