方案是安装lm-sensors包,使用其中的sensors命令读取温度,将sensors的输出传递到PVE前端页面(/usr/share/pve-manager/pvemanagerlib.js),通过前端页面的js脚本的match函数匹配对应的行,提取出温度值进行显示。
但我的温度中有两个temp1,我想要显示第二个,但却没找到实现的办法。

    root@pve:/usr/share/pve-manager/js# sensors
    coretemp-isa-0000
    Adapter: ISA adapter
    Package id 0:  +47.0°C  (high = +80.0°C, crit = +100.0°C)
    Core 0:        +45.0°C  (high = +80.0°C, crit = +100.0°C)
    Core 1:        +47.0°C  (high = +80.0°C, crit = +100.0°C)
    
    acpitz-acpi-0
    Adapter: ACPI interface
    temp1:        +27.8°C  (crit = +119.0°C)
    temp2:        +29.8°C  (crit = +119.0°C)
    
    pch_skylake-virtual-0
    Adapter: Virtual device
    temp1:        +48.5°C

后来灵机一动,通过linux的管道,使用sed将第一个temp1相关部分(第6-10行)删除,即在/usr/share/perl5/PVE/API2/Nodes.pm页面中增加的sensros命令修改成:

    sensors | sed '6-10d'

Snipaste_2020-05-11_21-48-27.png
最终效果:
Snipaste_2020-05-11_21-51-14.png

参考:
PVE显示温度
sed使用方法

标签: none

添加新评论