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?查看硬盘温度

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值