leftso 51 0 2022-09-14
PVE 7显示CPU温度效果参考

工具准备

  • xshell 或者其他ssh工具
  • xftp 或者其他ftp工具
  • notepad++或者其他文本编辑工具
需要修改以下两个文件
  • /usr/share/pve-manager/js/pvemanagerlib.js
  • /usr/share/perl5/PVE/API2/Nodes.pm
需要安装软件lm-sensors

备份

操作前,先将两个文件进行备份
cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak


cp /usr/share/perl5/PVE/API2/Nodes.pm /usr/share/perl5/PVE/API2/Nodes.pm.bak

安装lm-sensors

打开pve的终端,
apt install lm-sensors

安装完成后可以通过命令查看cpu温度
sensors
执行结果参考
root@pve:/usr/share/pve-manager/js# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +47.0°C  (high = +94.0°C, crit = +100.0°C)
Core 0:        +45.0°C  (high = +94.0°C, crit = +100.0°C)
Core 1:        +48.0°C  (high = +94.0°C, crit = +100.0°C)
Core 2:        +47.0°C  (high = +94.0°C, crit = +100.0°C)
Core 3:        +45.0°C  (high = +94.0°C, crit = +100.0°C)
Core 4:        +46.0°C  (high = +94.0°C, crit = +100.0°C)
Core 5:        +48.0°C  (high = +94.0°C, crit = +100.0°C)

修改文件

使用xshell连接pve主机并通过xftp上传和下载上面提到的两个文件

编辑Nodes.pm文件

notepad++打开该文件,然后搜索  pveversion
pveversion

找到后在下面添加以下内容:
	$res->{thermalstate} = `sensors`;  # 检测CPU温度

添加完成后的样子:
添加完成

到此Nodes.pm文件编辑完毕,通过ftp工具上传覆盖即可

编辑pvemanagerlib.js文件

通过notepad++打开该文件

高度修改1

搜索关键词:title: gettext('Detail')
这里主要修改height高度的值
修改高度1

这里高度增加20或40,由于硬盘没成功暂时不提

高度修改2

搜索关键词:widget.pveNodeStatus
高度修改2

注意这里高度修改成650,是为了更好看的布局

新增cpu显示条目

搜索关键词:Proxmox.Utils.render_cpu_modelcpu配置

提示:
由于硬盘未成功,请仅参考cpu部分,添加cpu配置到上图所示的地方
 

    {
          itemId: 'thermalstate',
          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} ℃ `;
			  // 因为我是4个核心,所以添加4个。不同CPU核心数不一样,根据自身需求增加,或者也可以只保留1个Package温度
		  }
    },

提示1:这里的textField 名称必须与刚才修改的Nodes.pm里面配置的一致,然后item-id 需要全文唯一

提示2:注意 逗号括号不要少,不能用中文的逗号括号或者全角字符

修改完毕后将pvemanagerlib.js文件上传服务器覆盖

重启web服务

systemctl restart pveproxy
重启完毕后CTRL+F5强制刷新下浏览器就可以看到了
 

硬盘温度查看

安装软件
apt install hddtemp
安装完毕后执行命令查看:
hddtemp /dev/sd?
参考:
pve# 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


同CPU操作,发现硬盘温度无法显示,原因未知,有知道老铁告知一下
 

评论区域