PVE显示CPU温度和硬盘温度
测试版本是PVE7.4
先来个最终效果图
安装PVE系统
这个不用讲了,网上大把教程。
安装 CPU 及主板温度检测:lm-sensors
apt install lm-sensors
查看cpu温度
root@**:/usr/share/pve-manager/js# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +45.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +41.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +41.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +41.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +41.0°C (high = +105.0°C, crit = +105.0°C)
Core 4: +45.0°C (high = +105.0°C, crit = +105.0°C)
Core 5: +45.0°C (high = +105.0°C, crit = +105.0°C)
Core 6: +45.0°C (high = +105.0°C, crit = +105.0°C)
Core 7: +45.0°C (high = +105.0°C, crit = +105.0°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C (crit = +110.0°C)
nvme-pci-0600
Adapter: PCI adapter
Composite: +39.9°C (low = -0.1°C, high = +99.8°C)
(crit = +109.8°C)
root@**:/usr/share/pve-manager/js#
安装 硬盘温度检测: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(‘PVE Manager Version’),
在pvemanagerlib.js中搜索PVE Manager Version,添加如下代码, tehmal是CPU温度,thermal-hdd 是硬盘温度
{
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} ℃`
//有几核写几行,其实一个也一样,温度都是一样的
}
},
第二步修改状态显示面板的高度
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/74bcb79a0dc24c69aececdda89a3fc29.png
height: 高度 默认300, 增加一行加20
bodyPadding: 默认15 5 15 5 我这里改成 ‘30 5 30 5’, 只增加一行 可以不去管
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6a66224f68ba4460af32cab6a66675af.png
最后一步重启pveproxy
systemctl restart pveproxy