PVE显示温度(sed搞定多次匹配)
方案是安装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'
最终效果: