侧边栏壁纸
  • 累计撰写 28 篇文章
  • 累计创建 42 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

PVE7.2 显示CPU温度和频率

Dion
2023-08-25 / 0 评论 / 2 点赞 / 175 阅读 / 7098 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-08-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

PVE7.2 显示CPU温度和频率,作为个人笔记,仅供参考

效果图

0f004e18fd10ba8f9a3b15b5933ab86f.webp36a5534c882a687cf056fa677f09be21.webp

操作步骤

  1. 安装 CPU 及主板温度检测工具lm-sensors

apt install lm-sensors
  1. 查看cpu温度sensors

dda977bbdeef6d0210a499efe4756ba8.webp

  1. 查看CPU频率lscpu | grep MHz

9d14e5f8e93933188a8fb698913e3a67.webp

  1. 修改配置文件

首先备份需要修改的文件

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

  1. 修改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();
<p>$res->{thermalstate} = <code>sensors;  # 检测CPU温度

$res->{cpusensors} = lscpu | grep MHz; # 检测CPU频率

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

9007d676291f93438d5bb66299d107af.webp 修改完成后保存,将Nodes.pm放回原路径

  1. 修改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.<em>?+([\d.]+)Â/)[1];
const c0 = value.match(/Core 0.</em>?+([\d.]+)Â/)[1];
const c1 = value.match(/Core 1.<em>?+([\d.]+)Â/)[1];
const c2 = value.match(/Core 2.</em>?+([\d.]+)Â/)[1];
const c3 = value.match(/Core 3.*?+([\d.]+)Â/)[1];
return <code>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 `
        }
},
# 复制到上面就可以了,注意下面中括号后面的逗号
],</code></pre><p><img loading="lazy" src="https://imge.dlc.ink/halo/f9a106b520e8415e132a629a32ed266c.webp" alt="f9a106b520e8415e132a629a32ed266c.webp" style="display: inline-block"></p><ol start="7"><li><p>修改框架高度</p></li></ol><p>不修改,会导致页面显示不全</p><p><code>notepad++</code>打开文件<code>pvemanagerlib.js</code>,搜索<code>widget.pveNodeStatus</code>,修改<code>height</code>值</p><p><code>height</code> 的值需按情况修改,每多一行数据增加<code>20</code></p><pre><code class="language-python">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%',
    },
},
},</code></pre><p><img loading="lazy" src="https://imge.dlc.ink/halo/de803e3a1679ad984e05ce39261c2c0a.webp" alt="de803e3a1679ad984e05ce39261c2c0a.webp" style="display: inline-block">搜索<code>title: gettext('Detail'),</code>,修改<code>height</code>值</p><pre><code class="language-python">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>',

2e3e54e8377946a58ade74a94a7932cb.webp修改完成后保存,将pvemanagerlib.js放回原路径

  1. 重启PVE页面服务

systemctl restart pveproxy

结语

原本还想增加硬盘温度显示,但试了各种方法,都不能正常显示,而且每个人主板硬件、硬盘数也不一样,设置起来比较繁琐,最后还是放弃了

如果想看自己的硬盘温度,可以通过安装硬盘温度检测组件查看

apt install hddtemp

hddtemp /dev/sd?查看硬盘温度

515fa5df659ae039758aa7d81d5f27af.webp

2

评论区