以下摘自大佬

PVE显示CPU温度和硬盘温度

先来个最终效果图
最终效果图

安装PVE系统

这个不用讲了,网上大把教程。
安装 CPU 及主板温度检测:lm-sensors

apt install lm-sensors

1

查看cpu温度

root@:~# sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1: +65.0°C (crit = +95.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +64.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +64.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +64.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +64.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +64.0°C (high = +105.0°C, crit = +105.0°C)

root@:~#

温度有点高!!在下载。
安装 硬盘温度检测:hddtemp

apt install hddtemp

 

查看一下硬盘温度,有2个是usb接口的,不支持温度查看

root@:~# hddtemp /dev/sd?
/dev/sda: SSD 128GB: 40°C
/dev/sdb: HGST HTS541010A9E680: 29°C
/dev/sdc: ST1000LM024 HN-M101MBB: S.M.A.R.T. not available
/dev/sdd: TOSHIBA MK1246GSX: S.M.A.R.T. not available
root@:~#

修改配置文件

首先备份需要修改的文件

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文件
用vi命令修改,或者安装lrzsz软件包,下载到本地电脑修改

apt install lrzsz

然后sz命令下载文件到本地电脑

sz /usr/share/perl5/PVE/API2/Nodes.pm
sz /usr/share/pve-manager/js/pvemanagerlib.js

电脑用notepad++打开Nodes.pm,搜索pveversion

$res->{pveversion} = PVE::pvecfg::package() . “/” .
PVE::pvecfg::version_text();

$res->{thermalstate} = `sensors`; //这里加一行

$res->{thermal_hdd} = `hddtemp /dev/sd?`; //这里也加一行

my $dinfo = df(‘/’, 1); # output is bytes

修改pvemanagerlib.js文件
notepad++打开文件pvemanagerlib.js,搜索title: gettext(‘Detail’),

// …[OMITTED]…
title: gettext(‘Detail’),
resizable: true,
modal: true,
width: 650,
height: 400 , //原值3007.0 7.1 7.2的可能不一样
layout: {
type: ‘fit’,
},

// …[OMITTED]…

搜索widget.pveNodeStatus

// …[OMITTED]…
Ext.define(‘PVE.node.StatusView’, {
extend: ‘PVE.panel.StatusView’,
alias: ‘widget.pveNodeStatus’,

height: 400, // 原始值为 300
bodyPadding: ’20 15 20 15′,

layout: {
// …[OMITTED]…

两处 height 的值需按情况修改,每多一行数据增加 20,我这边增加一行显示CPU温度,4行显示硬盘温度,所以增加了100
再次在pvemanagerlib.js中搜索PVE Manager Version,添加如下代码

title: gettext(‘PVE Manager Version’),
textField: ‘pveversion’,
value: ”,
}, //注意这里需要加一个逗号
//这里开始复制,
{
itemId: ‘thermal’,
colspan: 2,
printBar: false,
title: gettext(‘CPU温度’),
textField: ‘thermalstate’,
renderer:function(value){
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 `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃`
//这里我是4核的cpu,所以添加了4个,其实一个也一样,温度都是一样的
}
},
{
itemId: ‘thermal-hdd’,
colspan: 2,
printBar: false,
title: gettext(‘硬盘温度’),
textField: ‘thermal_hdd’,
renderer: function(value) {
value = value.replaceAll(‘Â’, ”,);
return value.replaceAll(‘\n’, ‘<br>’);
}
}
//上面这里结束,不要复制多了
],

 

最后一步重启pveproxy

systemctl restart pveproxy

 

防止自己忘记,写个记录!
————————————————
版权声明:本文为CSDN博主「月球在线」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013693304/article/details/120975823

 

 

 

发表回复

后才能评论