PVE7.2 显示CPU温度和频率
PVE7.2 显示CPU温度和频率给自己留着保存用,仅供参考
·
初衷
给自己留着保存用,仅供参考
效果图
安装 CPU 及主板温度检测:lm-sensors
apt install lm-sensors
查看cpu温度
查看CPU频率
修改配置文件
首先备份需要修改的文件
cp /usr/share/perl5/PVE/API2/Nodes.pm /usr/share/perl5/PVE/API2/Nodes.pm.bak
cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak
修改Nodes.pm文件
用FinalShell,或者WinSCP等其它SSH工具,修改这个文件/usr/share/perl5/PVE/API2/Nodes.pm
建议将文件下载到本地,修改方便
用notepad++打开Nodes.pm,搜索pveversion
$res->{pveversion} = PVE::pvecfg::package() . "/" .
PVE::pvecfg::version_text();
$res->{thermalstate} = `sensors`; # 检测CPU温度
$res->{cpusensors} = `lscpu | grep MHz`; # 检测CPU频率
my $dinfo = df('/', 1); # output is bytes
修改完成后保存,将Nodes.pm放回原路径
修改pvemanagerlib.js文件
管理界面添加温度显示
notepad++打开文件pvemanagerlib.js,搜索textField: 'pveversion'
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: '',
},
# 在此处开始复制,注意上面大括号后面的逗号不能少,否则后面网页显示白屏
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU温度'),
textField: 'thermalstate',
renderer:function(value){
const p0 = value.match(/Package id 0.*?\+([\d\.]+)Â/)[1];
const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];
const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];
const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];
const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];
return `Package: ${p0} ℃ || 核心1: ${c0} ℃ | 核心2: ${c1} ℃ | 核心3: ${c2} ℃ | 核心4: ${c3} ℃ `
# 因为我是4个核心,所以添加4个。不同CPU核心数不一样,根据自身需求增加,或者也可以只保留1个Package温度
}
},
{
itemId: 'MHz',
colspan: 2,
printBar: false,
title: gettext('CPU频率'),
textField: 'cpusensors',
renderer:function(value){
const f0 = value.match(/CPU MHz.*?([\d]+)/)[1];
const f1 = value.match(/CPU min MHz.*?([\d]+)/)[1];
const f2 = value.match(/CPU max MHz.*?([\d]+)/)[1];
return `CPU实时: ${f0} MHz | 最小: ${f1} MHz | 最大: ${f2} MHz `
}
},
# 复制到上面就可以了,注意下面中括号后面的逗号
],
修改框架高度
不修改,会导致页面显示不全
notepad++打开文件pvemanagerlib.js,搜索widget.pveNodeStatus
,修改height
值
height 的值需按情况修改,每多一行数据增加 20
Ext.define('PVE.node.StatusView', {
extend: 'Proxmox.panel.StatusView',
alias: 'widget.pveNodeStatus',
height: 320, # 原始值300,增加1行CPU温度、1行CPU频率,应改为340,这里我只增加1行显示,是因为我想屏蔽掉‘储存库状态’显示
bodyPadding: '15 5 15 5',
layout: {
type: 'table',
columns: 2,
tableAttrs: {
style: {
width: '100%',
},
},
},
搜索title: gettext('Detail'),
,修改height
值
iconCls: 'x-fa fa-info-circle',
handler: function(grid, rowindex, colindex, item, e, record) {
var win = Ext.create('Ext.window.Window', {
title: gettext('Detail'),
resizable: true,
modal: true,
width: 650,
height: 420, # 原始值400,增加1行CPU温度、1行CPU频率,应改为440,这里我只增加1行显示,是因为我想屏蔽掉‘储存库状态’显示
layout: {
type: 'fit',
},
items: [{
scrollable: true,
padding: 10,
xtype: 'box',
html: [
'<span>' + Ext.htmlEncode(record.data.summary) + '</span>',
'<pre>' + Ext.htmlEncode(record.data.detail) + '</pre>',
修改完成后保存,将pvemanagerlib.js放回原路径
重启PVE页面服务
systemctl restart pveproxy
结语
原本还想增加硬盘温度显示,但试了各种方法,都不能正常显示,而且每个人主板硬件、硬盘数也不一样,设置起来比较繁琐,最后还是放弃了
如果想看自己的硬盘温度,可以通过安装硬盘温度检测组件查看
apt install hddtemp
hddtemp /dev/sd?
查看硬盘温度
更多推荐
已为社区贡献1条内容
所有评论(0)