1.安装lm-sensors
a. lm-sensors(Linux-monitoring sensors,Linux监控传感器)是是一款免费的Linux开源软件工具,提供监控温度,电压,湿度和风扇的工具和驱动程序。它也可以检测机箱入侵。
apt-get install lm-sensors
b. 安装完成后,可以运行命令“sensors-detect”来探测哪些传感器可用并加载相关的内核模块。通常全部默认yes即可,最后提示时候按回车完成!
c. 之后执行命令“sensors”即可显示出系统运行的温度状态和风扇转速等信息:
Adapter: ISA adapter
Package id 0:+43.0°C(high = +76.0°C, crit = +86.0°C)
Core 0:+35.0°C(high = +76.0°C, crit = +86.0°C)
Core 1:+34.0°C(high = +76.0°C, crit = +86.0°C)
Core 2:+42.0°C(high = +76.0°C, crit = +86.0°C)
Core 3:+38.0°C(high = +76.0°C, crit = +86.0°C)
Core 4:+43.0°C(high = +76.0°C, crit = +86.0°C)
//注意此处需记录下设备名称,如:Package id 0, Core 0等。
2.编辑修改文件
PVE使用Node.js来实现基于WebUI的管理,修改此文件的目的就是让其能定期执行sensors命令,并将结果输出Web页面上。具体的修改方法如下:
2.1. Nodes.pm
vi /usr/share/perl5/PVE/API2/Nodes.pm
//定位: my $dinfo = df(‘/’, 1); # output is bytes
//在定位之上插入一行
$res->{thermalstate} = `sensors`;
2.2.pvemanagerlib.js
vi /usr/share/pve-manager/js/pvemanagerlib.js
//定位1:
showLog: function(button, event, rec) {
//在定位下方Ext.creat(‘Ext.window.Windows
height: 400改为420
//定位2:
alias: ‘widget.pveNodeStatus’,
//在定位下方
height: 300改为320
//定位3:
gettext(‘PVE Manager Version
//在定位下方value后添加:
,
{
itemId: ‘thermal’,
colspan: 2,
printBar: false,
title: gettext(‘uTemperatue’),
textField: ‘thermalstate’,
renderer:function(value){
const c0 = value.match(/temp1.*?\+([\d\.]+)?/)[1];
return `Core: ${c0} | ${c1}`
}
}
//注意:“const”开头的常量名称和数量是由前文所说的“sensors”命令的输出结果决定的,对于不同的CPU类型其内容会有所不同,在本文中是我自己的名称来设定的。对于其他类型的CPU,可能没有Package的名称,或者会有(多个Socket)。
3.重启PVE的Web管理服务
systemctl restart pveproxy