866 lines
35 KiB
Perl
Executable File
866 lines
35 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
#
|
|
# ipmisens3
|
|
# Munin plugin to read IPMI sensor data
|
|
# Zoltan HERPAI (c) 2009 <wigyori@uid0.hu>
|
|
#
|
|
# Symlink this script into your /etc/munin/plugins directory in the
|
|
# following way:
|
|
#
|
|
# ipmisens2_[machine]_[sensors]
|
|
#
|
|
# Supported machines:
|
|
# - Asus K8N-LR: asmb2 (temp, volt, fan)
|
|
# - Dell DCS-XS23: xs23 (temp, volt, fan)
|
|
# - Dell M610 blade: m610 (temp)
|
|
# - Dell PowerEdge 2650: pe2650 (temp, volt, fan)
|
|
# - Fujitsu TX120: tx120 (temp, volt, fan)
|
|
# - HP Proliant ML350G5: proliantg5 (temp)
|
|
# - HP Proliant DL380G5: proliantg5 (temp)
|
|
# - HP Proliant DL385G1: hpasmcli (temp, fan)
|
|
# - IBM HS21/HS22/Dataplex DX360: ibmhsxx (volt)
|
|
# - IBM LS20/LS21: ibmlsxx (temp, volt)
|
|
# - IBM LS41: ibmls4x (temp, volt)
|
|
# - IBM x3200/x3550: ibmx3xx0 (temp, volt, fan)
|
|
# - IBM x346: x346 (temp, volt, fan)
|
|
# - Intel SHG2 mainboard: shg2 (temp, volt, fan)
|
|
# - Sun x2100/2100m2/2200/2200m2: x2100 (temp, volt, fan)
|
|
# - Sun x2250: x2250 (temp, volt, fan)
|
|
# - Sun x2270: x2270 (temp, volt, fan)
|
|
# - Sun x4100/4100m2/4200/4200m2/4600: x4x00 (temp, volt, fan)
|
|
# - Sun x4150: x4150 (temp, volt, fan)
|
|
# - Sun V20z (V40z?): v20z (temp, volt, fan)
|
|
# - Supermicro X7DB8/X7DCL: aocipmi20e (temp, volt, fan)
|
|
# - Supermicro X8DT6/X8DTT-F: hermon (temp, volt, fan)
|
|
# - Verari VB1205XM: vb1205 (temp, volt)
|
|
#
|
|
# Supported but not tested:
|
|
# - HP DL145G2: asmb2 (temp, volt, fan)
|
|
#
|
|
# Notes:
|
|
# - hpasmcli machtype requires HP's hpasmcli package, and the additional
|
|
# hpasmcliget script.
|
|
#
|
|
# Outputs submitted by:
|
|
# - Zoltan LAJBER <lajbi@lajli.gau.hu>
|
|
# - Gergely MADARASZ <gorgo@broadband.hu>
|
|
# - Louis van Belle <louis@van-belle.nl>
|
|
# - Andras GOT <andrej@antiszoc.hu>
|
|
# - Andras KORN <korn@chardonnay.math.bme.hu>
|
|
# - Tamas TEVESZ <ice@extreme.hu>
|
|
# - Gergely TOMKA <gergely@tomka.hu>
|
|
# - Gabor SZOLLOSI <dev@localnet.hu>
|
|
# - Reka KAROLYI <reka@karolyi.eu>
|
|
# - Andras HORVATH <Andras.Horvath@cern.ch>
|
|
#
|
|
# CHANGELOG
|
|
#
|
|
# Revision 3.01 2010/09/23 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Add support for handling non-ipmitool-based machtypes
|
|
# * Add support for HP Proliant DL385G1
|
|
#
|
|
# Revision 3.00 2010/05/25 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Add support for Supermicro X7DB8 via AOC IPMI20-E (aocipmi20e)
|
|
# * Add support for Supermicro X7DCL via AOC IPMI20-E (aocipmi20e)
|
|
# * Add support for Supermicro X8DT6 via Winbond Hermon BMC (hermon)
|
|
# * Add support for Supermicro X8DTT-F via Winbond Hermon BMC (hermon)
|
|
# * Add support for Dell M610 (m610)
|
|
# * Add support for HP DL380G5 (proliantg5)
|
|
# * Add support for HP ML350G5 (proliantg5)
|
|
# * Re-add support for Asus K8N-LR via ASMB2 (asmb2)
|
|
# * Add to-be-tested support for HP DL145G2 as per Paulo@muninexchange (asmb2)
|
|
#
|
|
# Revision 3.00early4 2010/01/09 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Add support for IBM HS22 (ibmhsxx)
|
|
# * Add support for IBM iDataplex DX360 (ibmhsxx)
|
|
# * Add support for Dell DCS XS23-sc (xs23)
|
|
#
|
|
# Revision 3.00early3 2009/12/30 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Support for easier debugging ($debug)
|
|
# * Add support for IBM LS41 (ibmls4x)
|
|
# * Add complete support for Sun x2270 (x2270)
|
|
# * Add support for Sun x4500 (x4x00)
|
|
# * Add support for Fujitsu-Siemens TX120 (tx120)
|
|
#
|
|
# Revision 3.00early2 2009/09/09 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Minor bugfix due to munin brain damage
|
|
#
|
|
# Revision 3.00early 2009/09/01 Zoltan HERPAI <wigyori@uid0.hu>
|
|
# * Complete rewrite in perl.
|
|
# * Sun x2100, x2100M2 and x2200 are now supported in 'x2100' machtype
|
|
# * Bunch of new machtypes are supported
|
|
#
|
|
|
|
use strict;
|
|
use warnings;
|
|
use POSIX;
|
|
use FindBin qw($Script);
|
|
|
|
my $IPMITOOL = '/usr/bin/ipmitool';
|
|
my $curtime = time();
|
|
my $TEMPFILE = "/var/lib/munin/plugin-state/ipmisens3";
|
|
# set the ipmidump expiration to 1 day
|
|
my $TEMPREFRESH = 86400;
|
|
my $debug = 0;
|
|
my $devel = 0;
|
|
|
|
##############
|
|
# You should not need to edit anything below here
|
|
#
|
|
$ENV{PATH} = '/bin:/usr/bin:/usr/sbin';
|
|
$ENV{IFS} = "\n";
|
|
|
|
$0 =~ /.*_(.*)_(.*)/;
|
|
my $machine = $1;
|
|
my $sensor = $2;
|
|
|
|
# Test if ipmitool is available
|
|
if ( !$devel )
|
|
{
|
|
if ( $machine ne 'hpasmcli' ) {
|
|
`$IPMITOOL help 2> /dev/null`;
|
|
if ($?)
|
|
{
|
|
print "no ($IPMITOOL not found)";
|
|
exit 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
print "Machine: $machine , sensor: $sensor\n" if ($debug);
|
|
|
|
# check expiration time of the dumpfile
|
|
if ( !$devel )
|
|
{
|
|
if ( $machine ne 'hpasmcli' ) {
|
|
if ( -f $TEMPFILE && $curtime - (stat($TEMPFILE))[9] >= $TEMPREFRESH )
|
|
{
|
|
print "Unlinking $TEMPFILE...\n" if ($debug);
|
|
unlink ($TEMPFILE);
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( !$devel )
|
|
{
|
|
if ( $machine ne 'hpasmcli' ) {
|
|
if ( ! -f $TEMPFILE )
|
|
{
|
|
print "Writing dumpfile $TEMPFILE...\n" if ($debug);
|
|
`$IPMITOOL sdr dump $TEMPFILE` || die $!;
|
|
if ($?)
|
|
{
|
|
print "no (retcode $?)\n";
|
|
exit 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
my @ipmioutput;
|
|
|
|
# Read the sensors
|
|
if ( $machine ne 'hpasmcli' ) {
|
|
@ipmioutput = `$IPMITOOL sdr -S $TEMPFILE`;
|
|
}
|
|
else {
|
|
@ipmioutput = `cat /tmp/ipmi-sensors`;
|
|
}
|
|
#my @ipmioutput = `cat ~wigyori/ipmisens2/outputs/hp_ml350g5`;
|
|
|
|
if ($?)
|
|
{
|
|
print "no (retcode $?)\n";
|
|
exit 3;
|
|
}
|
|
|
|
my $arg;
|
|
if ( defined($ARGV[0]) && $ARGV[0] ne "" )
|
|
{
|
|
print "argv: ".$ARGV[0]."\n" if ($debug);
|
|
if ( $ARGV[0] eq 'config' ) { $arg = 'config'; }
|
|
if ( $ARGV[0] eq 'autoconf' ) { $arg = 'autoconf'; }
|
|
|
|
if ( $arg eq 'autoconf' ) { print "no\n"; exit 0; }
|
|
|
|
my %cnf;
|
|
if ( $arg eq 'config' )
|
|
{
|
|
# Base sensor config
|
|
if ( $sensor eq 'temp' )
|
|
{
|
|
%cnf = (
|
|
'graph_title' => 'Temperature',
|
|
'graph_vlabel' => 'C',
|
|
'graph_category' => 'sensors',
|
|
);
|
|
}
|
|
|
|
if ( $sensor eq 'volt' )
|
|
{
|
|
%cnf = (
|
|
'graph_title' => 'Voltages',
|
|
'graph_vlabel' => 'Volts',
|
|
'graph_category' => 'sensors',
|
|
);
|
|
}
|
|
|
|
if ( $sensor eq 'fan' )
|
|
{
|
|
if ( $machine ne 'hpasmcli' ) {
|
|
%cnf = (
|
|
'graph_title' => 'Fan speeds',
|
|
'graph_vlabel' => 'RPM',
|
|
'graph_category' => 'sensors',
|
|
);
|
|
}
|
|
else {
|
|
%cnf = (
|
|
'graph_title' => 'Fan speeds',
|
|
'graph_vlabel' => '%',
|
|
'graph_category' => 'sensors',
|
|
);
|
|
}
|
|
}
|
|
|
|
# Static descriptors
|
|
my %base;
|
|
|
|
# Sun x4100
|
|
$base{'x4x00'}->{'mbt_amb'} = 'Mainboard';
|
|
$base{'x4x00'}->{'fpt_amb'} = 'FP';
|
|
$base{'x4x00'}->{'pdbt_amb'} = 'PSU';
|
|
$base{'x4x00'}->{'iot_amb'} = 'Disks';
|
|
$base{'x4x00'}->{'p0t_core'} = 'CPU0';
|
|
$base{'x4x00'}->{'p1t_core'} = 'CPU1';
|
|
$base{'x4x00'}->{'ft0fm0f0'} = 'ft0.fm0.f0';
|
|
$base{'x4x00'}->{'ft0fm1f0'} = 'ft0.fm1.f0';
|
|
$base{'x4x00'}->{'ft0fm2f0'} = 'ft0.fm2.f0';
|
|
$base{'x4x00'}->{'ft0fm0f1'} = 'ft0.fm0.f1';
|
|
$base{'x4x00'}->{'ft0fm1f1'} = 'ft0.fm1.f1';
|
|
$base{'x4x00'}->{'ft0fm2f1'} = 'ft0.fm2.f1';
|
|
$base{'x4x00'}->{'ft1fm0f0'} = 'ft1.fm0.f0';
|
|
$base{'x4x00'}->{'ft1fm1f0'} = 'ft1.fm1.f0';
|
|
$base{'x4x00'}->{'ft1fm2f0'} = 'ft1.fm2.f0';
|
|
$base{'x4x00'}->{'ft1fm0f1'} = 'ft1.fm0.f1';
|
|
$base{'x4x00'}->{'ft1fm1f1'} = 'ft1.fm1.f1';
|
|
$base{'x4x00'}->{'ft1fm2f1'} = 'ft1.fm2.f1';
|
|
$base{'x4x00'}->{'mbv_bat'} = 'BAT';
|
|
$base{'x4x00'}->{'mbv_3v3stby'} = '3.3VSTBY';
|
|
$base{'x4x00'}->{'mbv_3v3'} = '3.3V';
|
|
$base{'x4x00'}->{'mbv_5v'} = '5V';
|
|
$base{'x4x00'}->{'mbv_12v'} = '+12V';
|
|
$base{'x4x00'}->{'mbv_dash12v'} = '-12V';
|
|
$base{'x4x00'}->{'mbv_2v5core'} = 'MB 2.5V';
|
|
$base{'x4x00'}->{'mbv_1v8core'} = 'MB 1.8V';
|
|
$base{'x4x00'}->{'mbv_1v2core'} = 'MB 1.2V';
|
|
$base{'x4x00'}->{'p0v_1v5'} = 'CPU0 1.5V';
|
|
$base{'x4x00'}->{'p0v_2v5core'} = 'CPU0 2.5V';
|
|
$base{'x4x00'}->{'p0v_1v25core'} = 'CPU0 1.25V';
|
|
$base{'x4x00'}->{'p1v_1v5'} = 'CPU1 1.5V';
|
|
$base{'x4x00'}->{'p1v_2v5core'} = 'CPU1 2.5V';
|
|
$base{'x4x00'}->{'p1v_1v25core'} = 'CPU1 1.25V';
|
|
# Sun x4100m2 extents
|
|
$base{'x4x00'}->{'mbv_1v5core'} = 'MB 1.5V';
|
|
$base{'x4x00'}->{'p0v_vddio'} = 'CPU0 VDDIO';
|
|
$base{'x4x00'}->{'p0v_vdd'} = 'CPU0 VDD';
|
|
$base{'x4x00'}->{'p0v_vtt'} = 'CPU0 VTT';
|
|
$base{'x4x00'}->{'p1v_vddio'} = 'CPU1 VDDIO';
|
|
$base{'x4x00'}->{'p1v_vdd'} = 'CPU1 VDD';
|
|
$base{'x4x00'}->{'p1v_vtt'} = 'CPU1 VTT';
|
|
# Sun x4600 voltage extents
|
|
$base{'x4x00'}->{'mbv_1v2'} = 'MB +1.2V';
|
|
$base{'x4x00'}->{'mbv_1v5'} = 'MB +1.5V';
|
|
$base{'x4x00'}->{'mbv_2v5'} = 'MB +2.5V';
|
|
$base{'x4x00'}->{'mbv_3v3aux_r'} = 'MB +3.3VAUX';
|
|
$base{'x4x00'}->{'p0v_12v'} = 'CPU0 module +12V';
|
|
$base{'x4x00'}->{'p1v_12v'} = 'CPU1 module +12V';
|
|
$base{'x4x00'}->{'p2v_12v'} = 'CPU2 module +12V';
|
|
$base{'x4x00'}->{'p3v_12v'} = 'CPU3 module +12V';
|
|
$base{'x4x00'}->{'p4v_12v'} = 'CPU4 module +12V';
|
|
$base{'x4x00'}->{'p5v_12v'} = 'CPU5 module +12V';
|
|
$base{'x4x00'}->{'p6v_12v'} = 'CPU6 module +12V';
|
|
$base{'x4x00'}->{'p7v_12v'} = 'CPU7 module +12V';
|
|
$base{'x4x00'}->{'p0v_2v5'} = 'CPU0 module +2.5V';
|
|
$base{'x4x00'}->{'p1v_2v5'} = 'CPU1 module +2.5V';
|
|
$base{'x4x00'}->{'p2v_2v5'} = 'CPU2 module +2.5V';
|
|
$base{'x4x00'}->{'p3v_2v5'} = 'CPU3 module +2.5V';
|
|
$base{'x4x00'}->{'p4v_2v5'} = 'CPU4 module +2.5V';
|
|
$base{'x4x00'}->{'p5v_2v5'} = 'CPU5 module +2.5V';
|
|
$base{'x4x00'}->{'p6v_2v5'} = 'CPU6 module +2.5V';
|
|
$base{'x4x00'}->{'p7v_2v5'} = 'CPU7 module +2.5V';
|
|
$base{'x4x00'}->{'p0v_1v2'} = 'CPU0 module +1.2V';
|
|
$base{'x4x00'}->{'p1v_1v2'} = 'CPU1 module +1.2V';
|
|
$base{'x4x00'}->{'p2v_1v2'} = 'CPU2 module +1.2V';
|
|
$base{'x4x00'}->{'p3v_1v2'} = 'CPU3 module +1.2V';
|
|
$base{'x4x00'}->{'p4v_1v2'} = 'CPU4 module +1.2V';
|
|
$base{'x4x00'}->{'p5v_1v2'} = 'CPU5 module +1.2V';
|
|
$base{'x4x00'}->{'p6v_1v2'} = 'CPU6 module +1.2V';
|
|
$base{'x4x00'}->{'p7v_1v2'} = 'CPU7 module +1.2V';
|
|
$base{'x4x00'}->{'p0v_3v3aux_r'} = 'CPU0 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p1v_3v3aux_r'} = 'CPU1 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p2v_3v3aux_r'} = 'CPU2 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p3v_3v3aux_r'} = 'CPU3 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p4v_3v3aux_r'} = 'CPU4 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p5v_3v3aux_r'} = 'CPU5 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p6v_3v3aux_r'} = 'CPU6 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p7v_3v3aux_r'} = 'CPU7 module +3.3VAUX';
|
|
$base{'x4x00'}->{'p0v_3v3led'} = 'CPU0 module +3.3V LED';
|
|
$base{'x4x00'}->{'p1v_3v3led'} = 'CPU1 module +3.3V LED';
|
|
$base{'x4x00'}->{'p2v_3v3led'} = 'CPU2 module +3.3V LED';
|
|
$base{'x4x00'}->{'p3v_3v3led'} = 'CPU3 module +3.3V LED';
|
|
$base{'x4x00'}->{'p4v_3v3led'} = 'CPU4 module +3.3V LED';
|
|
$base{'x4x00'}->{'p5v_3v3led'} = 'CPU5 module +3.3V LED';
|
|
$base{'x4x00'}->{'p6v_3v3led'} = 'CPU6 module +3.3V LED';
|
|
$base{'x4x00'}->{'p7v_3v3led'} = 'CPU7 module +3.3V LED';
|
|
$base{'x4x00'}->{'p2v_1v25core'} = 'CPU2 1.25V';
|
|
$base{'x4x00'}->{'p3v_1v25core'} = 'CPU3 1.25V';
|
|
$base{'x4x00'}->{'p4v_1v25core'} = 'CPU4 1.25V';
|
|
$base{'x4x00'}->{'p5v_1v25core'} = 'CPU5 1.25V';
|
|
$base{'x4x00'}->{'p6v_1v25core'} = 'CPU6 1.25V';
|
|
$base{'x4x00'}->{'p7v_1v25core'} = 'CPU7 1.25V';
|
|
$base{'x4x00'}->{'p0v_core'} = 'CPU0 Vcore';
|
|
$base{'x4x00'}->{'p1v_core'} = 'CPU1 Vcore';
|
|
$base{'x4x00'}->{'p2v_core'} = 'CPU2 Vcore';
|
|
$base{'x4x00'}->{'p3v_core'} = 'CPU3 Vcore';
|
|
$base{'x4x00'}->{'p4v_core'} = 'CPU4 Vcore';
|
|
$base{'x4x00'}->{'p5v_core'} = 'CPU5 Vcore';
|
|
$base{'x4x00'}->{'p6v_core'} = 'CPU6 Vcore';
|
|
$base{'x4x00'}->{'p7v_core'} = 'CPU7 Vcore';
|
|
# Sun x4600 temp extents
|
|
$base{'x4x00'}->{'p2t_core'} = 'CPU2';
|
|
$base{'x4x00'}->{'p3t_core'} = 'CPU3';
|
|
$base{'x4x00'}->{'p4t_core'} = 'CPU4';
|
|
$base{'x4x00'}->{'p5t_core'} = 'CPU5';
|
|
$base{'x4x00'}->{'p6t_core'} = 'CPU6';
|
|
$base{'x4x00'}->{'p7t_core'} = 'CPU7';
|
|
$base{'x4x00'}->{'p0t_amb'} = 'CPU0 module';
|
|
$base{'x4x00'}->{'p1t_amb'} = 'CPU1 module';
|
|
$base{'x4x00'}->{'p2t_amb'} = 'CPU2 module';
|
|
$base{'x4x00'}->{'p3t_amb'} = 'CPU3 module';
|
|
$base{'x4x00'}->{'p4t_amb'} = 'CPU4 module';
|
|
$base{'x4x00'}->{'p5t_amb'} = 'CPU5 module';
|
|
$base{'x4x00'}->{'p6t_amb'} = 'CPU6 module';
|
|
$base{'x4x00'}->{'p7t_amb'} = 'CPU7 module';
|
|
$base{'x4x00'}->{'mbt_amb0'} = 'System board 0';
|
|
$base{'x4x00'}->{'mbt_amb1'} = 'System board 1';
|
|
$base{'x4x00'}->{'mbt_amb2'} = 'System board 2';
|
|
# Sun x4500 voltage extents
|
|
$base{'x4x00'}->{'procp0v_1v25'} = 'CPU0 1.25V';
|
|
$base{'x4x00'}->{'procp1v_1v25'} = 'CPU1 1.25V';
|
|
$base{'x4x00'}->{'procp0v_1v5'} = 'CPU0 1.5V';
|
|
$base{'x4x00'}->{'procp1v_1v5'} = 'CPU1 1.5V';
|
|
$base{'x4x00'}->{'procp0v_2v5'} = 'CPU0 2.5V';
|
|
$base{'x4x00'}->{'procp1v_2v5'} = 'CPU1 2.5V';
|
|
$base{'x4x00'}->{'procv_1v8'} = 'CPU 1.8V';
|
|
$base{'x4x00'}->{'iov_1v5'} = 'IO 1.5V';
|
|
$base{'x4x00'}->{'iov_2v5'} = 'IO 2.5V';
|
|
$base{'x4x00'}->{'iov_5v_disk'} = 'IO 5V disk';
|
|
$base{'x4x00'}->{'iov_dash12v'} = 'IO -12V';
|
|
# Sun x4500 temp extents
|
|
$base{'x4x00'}->{'iofrontt_amb'} = 'IO front';
|
|
$base{'x4x00'}->{'ioreart_amb'} = 'IO rear';
|
|
$base{'x4x00'}->{'procfrontt_amb'} = 'CPU front';
|
|
$base{'x4x00'}->{'procreart_amb'} = 'CPU rear';
|
|
$base{'x4x00'}->{'procp0t_core'} = 'CPU0 temp';
|
|
$base{'x4x00'}->{'procp1t_core'} = 'CPU1 temp';
|
|
$base{'x4x00'}->{'dbpt_amb'} = 'DBP';
|
|
|
|
# Sun V20z (V40z?)
|
|
$base{'v20z'}->{'ambient'} = 'System';
|
|
$base{'v20z'}->{'cpu0die'} = 'CPU0 die';
|
|
$base{'v20z'}->{'cpu0mem'} = 'CPU0 mem';
|
|
$base{'v20z'}->{'cpu1die'} = 'CPU1 die';
|
|
$base{'v20z'}->{'cpu1mem'} = 'CPU1 mem';
|
|
$base{'v20z'}->{'gbeth'} = 'GBNIC';
|
|
$base{'v20z'}->{'hddbp'} = 'HDD backplane';
|
|
$base{'v20z'}->{'sp'} = 'Service CPU';
|
|
|
|
# Sun x2100
|
|
$base{'x2100'}->{'cpucorevoltage'} = 'CPU core';
|
|
$base{'x2100'}->{'batteryvolt'} = 'VBAT';
|
|
$base{'x2100'}->{'ddr26v'} = 'DDR 2.6V';
|
|
$base{'x2100'}->{'vcc33v'} = '+3.3V';
|
|
$base{'x2100'}->{'vcc5v'} = '+5V';
|
|
$base{'x2100'}->{'vcc12v'} = '+12V';
|
|
$base{'x2100'}->{'cputemp'} = 'CPU';
|
|
$base{'x2100'}->{'system'} = 'System';
|
|
# Sun x2100M2 extents
|
|
$base{'x2100'}->{'ddrp118v'} = 'DDR P1 1.8V';
|
|
$base{'x2100'}->{'vcc33vstb'} = '+3.3VSTBY';
|
|
$base{'x2100'}->{'ambienttemp'} = 'System';
|
|
# Sun x2200 extents
|
|
$base{'x2100'}->{'ddrp018v'} = 'DDR P0 1.8V';
|
|
$base{'x2100'}->{'ambienttemp0'} = 'System temp 0';
|
|
$base{'x2100'}->{'ambienttemp1'} = 'System temp 1';
|
|
$base{'x2100'}->{'cpu0temp'} = 'CPU0 temp';
|
|
$base{'x2100'}->{'cpu1temp'} = 'CPU1 temp';
|
|
|
|
# Intel SHG2
|
|
$base{'shg2'}->{'baseboard12v'} = 'MB 12V';
|
|
$base{'shg2'}->{'baseboard15v'} = 'MB 1.5V';
|
|
$base{'shg2'}->{'baseboard25v'} = 'MB 2.5V';
|
|
$base{'shg2'}->{'baseboard33v'} = 'MB 3.3V';
|
|
$base{'shg2'}->{'baseboard33vsb'} = '3.3VSTBY';
|
|
$base{'shg2'}->{'baseboard5v'} = 'MB 5V';
|
|
$base{'shg2'}->{'baseboarddash12v'} = 'MB -12V';
|
|
$base{'shg2'}->{'batteryvoltage'} = 'VBAT';
|
|
$base{'shg2'}->{'processorvrm'} = 'VRM';
|
|
|
|
# IBM x346
|
|
$base{'x346'}->{'125vsense'} = '+1.25V';
|
|
$base{'x346'}->{'12vasense'} = '+12V A';
|
|
$base{'x346'}->{'12vbsense'} = '+12V B';
|
|
$base{'x346'}->{'12vcsense'} = '+12V C';
|
|
$base{'x346'}->{'13vsense'} = '+1.3V';
|
|
$base{'x346'}->{'15vsense'} = '+1.5V';
|
|
$base{'x346'}->{'18vsense'} = '+1.8V';
|
|
$base{'x346'}->{'25vsense'} = '+2.5V';
|
|
$base{'x346'}->{'5vsense'} = '+5V';
|
|
$base{'x346'}->{'cpu1vcore'} = 'CPU1 Vcore';
|
|
$base{'x346'}->{'cpu2vcore'} = 'CPU2 Vcore';
|
|
$base{'x346'}->{'cpuvtt'} = 'CPU VTT';
|
|
$base{'x346'}->{'dash12vsense'} = '-12V';
|
|
$base{'x346'}->{'vbat'} = 'VBAT';
|
|
$base{'x346'}->{'cpu1'} = 'CPU1';
|
|
$base{'x346'}->{'cpu2'} = 'CPU2';
|
|
$base{'x346'}->{'dasd'} = 'DASD';
|
|
$base{'x346'}->{'ambient'} = 'System';
|
|
|
|
# Sun x2250
|
|
$base{'x2250'}->{'3v3_stby'} = '3.3VSTBY';
|
|
$base{'x2250'}->{'3v3'} = '+3.3V';
|
|
$base{'x2250'}->{'5v'} = '+5V';
|
|
$base{'x2250'}->{'12v'} = '+12V';
|
|
$base{'x2250'}->{'1v5'} = '+1.5V';
|
|
$base{'x2250'}->{'1v8'} = '+1.8V';
|
|
$base{'x2250'}->{'0v9'} = '+0.9V';
|
|
$base{'x2250'}->{'vtt'} = 'VTT';
|
|
$base{'x2250'}->{'1v5_esb'} = 'ESB +1.5V';
|
|
$base{'x2250'}->{'1v2_nic'} = 'NIC +1.2V';
|
|
$base{'x2250'}->{'1v8_nic'} = 'NIC +1.8V';
|
|
$base{'x2250'}->{'1v5_fbd'} = 'FBDIMM +1.5V';
|
|
|
|
# Sun x2270
|
|
$base{'x2270'}->{'3v3_stby'} = '3.3VSTBY';
|
|
$base{'x2270'}->{'3v3'} = '+3.3V';
|
|
$base{'x2270'}->{'5v'} = '+5V';
|
|
$base{'x2270'}->{'12v'} = '+12V';
|
|
$base{'x2270'}->{'3v3_vbat'} = '3.3VBAT';
|
|
$base{'x2270'}->{'1v5'} = '+1.5V';
|
|
$base{'x2270'}->{'p0_1v5_ddr'} = 'DDR P0 +1.5V';
|
|
$base{'x2270'}->{'p1_1v5_ddr'} = 'DDR P1 +1.5V';
|
|
$base{'x2270'}->{'p0_1v8'} = 'P0 +1.8V';
|
|
$base{'x2270'}->{'p1_1v8'} = 'P1 +1.8V';
|
|
$base{'x2270'}->{'p0_vtt'} = 'P0 VTT';
|
|
$base{'x2270'}->{'p1_vtt'} = 'P1 VTT';
|
|
$base{'x2270'}->{'p0_vccp'} = 'P0 VCCp';
|
|
$base{'x2270'}->{'p1_vccp'} = 'P1 VCCp';
|
|
|
|
# Sun x4150
|
|
$base{'x4150'}->{'mb_t_amb0'} = 'MB Sensor 0';
|
|
$base{'x4150'}->{'mb_t_amb1'} = 'MB Sensor 1';
|
|
$base{'x4150'}->{'mb_t_amb2'} = 'MB Sensor 2';
|
|
$base{'x4150'}->{'mb_t_amb3'} = 'MB Sensor 3';
|
|
$base{'x4150'}->{'ps0_t_amb'} = 'PS 1 temp';
|
|
$base{'x4150'}->{'ps1_t_amb'} = 'PS 2 temp';
|
|
$base{'x4150'}->{'t_amb'} = 'System';
|
|
$base{'x4150'}->{'ps0_f0'} = 'PS 1 fan';
|
|
$base{'x4150'}->{'ps1_f0'} = 'PS 2 fan';
|
|
$base{'x4150'}->{'mb_p0_v_vcc'} = 'CPU0 VCC';
|
|
$base{'x4150'}->{'mb_p1_v_vcc'} = 'CPU1 VCC';
|
|
$base{'x4150'}->{'mb_v_12v'} = '+12V';
|
|
$base{'x4150'}->{'mb_v_1v5'} = '+1.5V';
|
|
$base{'x4150'}->{'mb_v_1v8'} = '+1.8V';
|
|
$base{'x4150'}->{'mb_v_2v5stby'} = '+2.5VSTBY';
|
|
$base{'x4150'}->{'mb_v_3v3'} = '+3.3V';
|
|
$base{'x4150'}->{'mb_v_3v3stby'} = '+3.3VSTBY';
|
|
$base{'x4150'}->{'mb_v_5v'} = '+5V';
|
|
$base{'x4150'}->{'mb_v_nic'} = 'NIC';
|
|
$base{'x4150'}->{'mb_v_vtt'} = 'VTT';
|
|
$base{'x4150'}->{'ps0_v_in'} = 'PS 1 voltage in';
|
|
$base{'x4150'}->{'ps0_v_out'} = 'PS 1 voltage out';
|
|
$base{'x4150'}->{'ps1_v_in'} = 'PS 2 voltage in';
|
|
$base{'x4150'}->{'ps1_v_out'} = 'PS 2 voltage out';
|
|
|
|
# Verari VB1205XM
|
|
$base{'vb1205'}->{'12v'} = '+12V';
|
|
$base{'vb1205'}->{'1_2v'} = '+1.2V';
|
|
$base{'vb1205'}->{'1_5v'} = '+1.5V';
|
|
$base{'vb1205'}->{'3_3v'} = '+3.3V';
|
|
$base{'vb1205'}->{'5v'} = '+5V';
|
|
$base{'vb1205'}->{'5vsb'} = '+5VSTBY';
|
|
$base{'vb1205'}->{'cpu1vcore'} = 'CPU1 Vcore';
|
|
$base{'vb1205'}->{'cpu2vcore'} = 'CPU2 Vcore';
|
|
$base{'vb1205'}->{'dash12v'} = '-12V';
|
|
$base{'vb1205'}->{'vbat'} = 'VBAT';
|
|
$base{'vb1205'}->{'cputemp1'} = 'CPU 1 temp';
|
|
$base{'vb1205'}->{'cputemp2'} = 'CPU 2 temp';
|
|
$base{'vb1205'}->{'systemp'} = 'System';
|
|
|
|
# Dell PowerEdge 2650
|
|
$base{'pe2650'}->{'esmmbfan1'} = 'Fan 1';
|
|
$base{'pe2650'}->{'esmmbfan2'} = 'Fan 2';
|
|
$base{'pe2650'}->{'esmmbfan3'} = 'Fan 3';
|
|
$base{'pe2650'}->{'esmmbfan4'} = 'Fan 4';
|
|
$base{'pe2650'}->{'esmmbfan5'} = 'Fan 5';
|
|
$base{'pe2650'}->{'esmmbfan6'} = 'Fan 6';
|
|
$base{'pe2650'}->{'esmmbfan7'} = 'Fan 7';
|
|
$base{'pe2650'}->{'esmmb12'} = 'MB +12V';
|
|
$base{'pe2650'}->{'esmmb25'} = 'MB +2.5V';
|
|
$base{'pe2650'}->{'esmmb33'} = 'MB +3.3V';
|
|
$base{'pe2650'}->{'esmmb5'} = 'MB +5V';
|
|
$base{'pe2650'}->{'esmmbbat'} = 'VBAT';
|
|
$base{'pe2650'}->{'esmmbdash12'} = 'MB -12V';
|
|
$base{'pe2650'}->{'esmrombpk'} = 'ROMB PK';
|
|
$base{'pe2650'}->{'esmvtt'} = 'VTT';
|
|
$base{'pe2650'}->{'esmcpu'} = 'CPU';
|
|
$base{'pe2650'}->{'esm5aux'} = '5V AUX';
|
|
$base{'pe2650'}->{'esmcpu1'} = 'CPU1';
|
|
$base{'pe2650'}->{'esmcpu2'} = 'CPU2';
|
|
$base{'pe2650'}->{'esmfrti_o'} = 'Front I/O';
|
|
$base{'pe2650'}->{'esmriser'} = 'Riser';
|
|
|
|
# IBM x3200
|
|
$base{'ibmx3xx0'}->{'planar12v'} = '+12V';
|
|
$base{'ibmx3xx0'}->{'planar15v'} = '+1.5V';
|
|
$base{'ibmx3xx0'}->{'planar18v'} = '+1.8V';
|
|
$base{'ibmx3xx0'}->{'planar33v'} = '+3.3V';
|
|
$base{'ibmx3xx0'}->{'planar5v'} = '+5V';
|
|
$base{'ibmx3xx0'}->{'cpuvcore'} = 'CPU Vcore';
|
|
$base{'ibmx3xx0'}->{'cpuvtt'} = 'VTT';
|
|
$base{'ibmx3xx0'}->{'ambient'} = 'System';
|
|
$base{'ibmx3xx0'}->{'cpu'} = 'CPU';
|
|
# IBM x3550 extents
|
|
$base{'ibmx3xx0'}->{'planarvbat'} = 'VBAT';
|
|
|
|
# IBM LS41
|
|
$base{'ibmlsxx'}->{'12vsense'} = '+12V';
|
|
$base{'ibmlsxx'}->{'3_3vsense'} = '+3.3V';
|
|
$base{'ibmlsxx'}->{'5vsense'} = '+5V';
|
|
$base{'ibmlsxx'}->{'planarvbat'} = 'VBAT';
|
|
# IBM LS20 extents
|
|
$base{'ibmlsxx'}->{'1_8vsense'} = '+1.8V';
|
|
$base{'ibmlsxx'}->{'1_8vsbsense'} = '+1.8VSB';
|
|
$base{'ibmlsxx'}->{'12vsbsense'} = '+12VSB';
|
|
$base{'ibmlsxx'}->{'12v_isense'} = '+12V_I';
|
|
|
|
# IBM HS21
|
|
$base{'ibmhsxx'}->{'planar0_9v'} = '+0.9V';
|
|
$base{'ibmhsxx'}->{'planar12v'} = '+12V';
|
|
$base{'ibmhsxx'}->{'planar3_3v'} = '+3.3V';
|
|
$base{'ibmhsxx'}->{'planar5v'} = '+5V';
|
|
$base{'ibmhsxx'}->{'planarvbat'} = 'VBAT';
|
|
# IBM iDataplex DX320 extents
|
|
$base{'ibmhsxx'}->{'cpu1vcore'} = 'CPU1 Vcore';
|
|
$base{'ibmhsxx'}->{'cpu2vcore'} = 'CPU2 Vcore';
|
|
|
|
# Fujitsu-Siemens TX120
|
|
$base{'tx120'}->{'12v'} = '12V';
|
|
$base{'tx120'}->{'15v'} = '1.5V';
|
|
$base{'tx120'}->{'18v'} = '1.8V';
|
|
$base{'tx120'}->{'33v'} = '3.3V';
|
|
$base{'tx120'}->{'5v'} = '5V';
|
|
$base{'tx120'}->{'dash12v'} = '-12V';
|
|
$base{'tx120'}->{'stdby33v'} = '3.3VSTBY';
|
|
$base{'tx120'}->{'vtt'} = 'VTT';
|
|
$base{'tx120'}->{'battery3v'} = '3VBAT';
|
|
$base{'tx120'}->{'fanpsu'} = 'Fan PSU';
|
|
$base{'tx120'}->{'fan1sys'} = 'Fan Sys 1';
|
|
$base{'tx120'}->{'fan2sys'} = 'Fan Sys 2';
|
|
$base{'tx120'}->{'fancpu'} = 'Fan CPU';
|
|
$base{'tx120'}->{'ambient'} = 'Ambient';
|
|
$base{'tx120'}->{'systemboard'} = 'System board';
|
|
$base{'tx120'}->{'cpu'} = 'CPU';
|
|
|
|
# Dell DCS XS23-sc
|
|
$base{'xs23'}->{'systemfan'} = 'System fan';
|
|
$base{'xs23'}->{'cpu0'} = 'CPU 0';
|
|
$base{'xs23'}->{'cpu1'} = 'CPU 1';
|
|
$base{'xs23'}->{'midplane'} = 'Midplane';
|
|
$base{'xs23'}->{'p12v'} = 'Planar 12V';
|
|
$base{'xs23'}->{'p15v'} = 'Planar 1.5V';
|
|
$base{'xs23'}->{'p18v'} = 'Planar 1.8V';
|
|
$base{'xs23'}->{'p33v'} = 'Planar 3.3V';
|
|
$base{'xs23'}->{'p5v'} = 'Planar 5V';
|
|
$base{'xs23'}->{'vtt'} = 'Vtt';
|
|
$base{'xs23'}->{'vcc33vaux'} = 'Vcc 3.3V AUX';
|
|
|
|
# Supermicro X8DT6 / X8DTT-F via Winbond Hermon BMC
|
|
$base{'hermon'}->{'fan1'} = 'Fan 1';
|
|
$base{'hermon'}->{'fan2'} = 'Fan 2';
|
|
$base{'hermon'}->{'fan3'} = 'Fan 3';
|
|
$base{'hermon'}->{'fan4'} = 'Fan 4';
|
|
$base{'hermon'}->{'fan5'} = 'Fan 5';
|
|
$base{'hermon'}->{'fan6'} = 'Fan 6';
|
|
$base{'hermon'}->{'fan7'} = 'Fan 7';
|
|
$base{'hermon'}->{'fan8'} = 'Fan 8';
|
|
$base{'hermon'}->{'system'} = 'System';
|
|
$base{'hermon'}->{'cpu1temp'} = 'CPU1 temp';
|
|
$base{'hermon'}->{'cpu2temp'} = 'CPU2 temp';
|
|
$base{'hermon'}->{'12v'} = '+12V';
|
|
$base{'hermon'}->{'15v'} = '+1.5V';
|
|
$base{'hermon'}->{'33v'} = '+3.3V';
|
|
$base{'hermon'}->{'33vsb'} = '+3.3VSB';
|
|
$base{'hermon'}->{'5v'} = '+5V';
|
|
$base{'hermon'}->{'vbat'} = 'VBAT';
|
|
$base{'hermon'}->{'cpu1dimm'} = 'CPU1 DIMM';
|
|
$base{'hermon'}->{'cpu2dimm'} = 'CPU2 DIMM';
|
|
$base{'hermon'}->{'cpu1vcore'} = 'CPU1 Vcore';
|
|
$base{'hermon'}->{'cpu2vcore'} = 'CPU2 Vcore';
|
|
|
|
# Most of these are similar on the Supermicro X* boards
|
|
$base{'aocipmi20e'} = $base{'hermon'};
|
|
$base{'aocipmi20e'}->{'dash12v'} = '-12V';
|
|
$base{'aocipmi20e'}->{'5vsb'} = '+5VSB';
|
|
$base{'aocipmi20e'}->{'fan7_cpu1'} = 'Fan7 / CPU1';
|
|
$base{'aocipmi20e'}->{'fan8_cpu2'} = 'Fan8 / CPU2';
|
|
$base{'aocipmi20e'}->{'sys'} = 'System';
|
|
|
|
# Asus K8N-LR / HP DL145G2
|
|
$base{'asmb2'}->{'cpufan1'} = 'CPU Fan 1';
|
|
$base{'asmb2'}->{'cpufan2'} = 'CPU Fan 2';
|
|
$base{'asmb2'}->{'frontfan1'} = 'Front Fan 1';
|
|
$base{'asmb2'}->{'frontfan2'} = 'Front Fan 2';
|
|
$base{'asmb2'}->{'rearfan1'} = 'Rear Fan 1';
|
|
$base{'asmb2'}->{'rearfan2'} = 'Rear Fan 2';
|
|
$base{'asmb2'}->{'cpu1thermal'} = 'CPU1';
|
|
$base{'asmb2'}->{'systemthermal'} = 'System';
|
|
$base{'asmb2'}->{'25vor18v'} = '+2.5V / +1.8V';
|
|
$base{'asmb2'}->{'bat_cmos'} = 'VBAT';
|
|
$base{'asmb2'}->{'cpuvcore1'} = 'CPU1 Vcore';
|
|
$base{'asmb2'}->{'system12v'} = '+12V';
|
|
$base{'asmb2'}->{'system15v'} = '+1.5V';
|
|
$base{'asmb2'}->{'system5v'} = '+5V';
|
|
$base{'asmb2'}->{'system3v'} = '+3V';
|
|
$base{'asmb2'}->{'system5vsb'} = '+5VSTBY';
|
|
|
|
# Dell M610 blade
|
|
$base{'m610'}->{'ambienttemp'} = 'Ambient temp';
|
|
$base{'m610'}->{'temp'} = 'Blade temp';
|
|
|
|
# hpasmcli / Proliant DL385G1
|
|
$base{'hpasmcli'}->{'cpu-1'} = 'CPU 1';
|
|
$base{'hpasmcli'}->{'cpu-2'} = 'CPU 2';
|
|
$base{'hpasmcli'}->{'i_o_zone'} = 'I/O zone';
|
|
$base{'hpasmcli'}->{'power_supply_bay'} = 'PSU bay';
|
|
$base{'hpasmcli'}->{'processor_zone'} = 'CPU zone';
|
|
|
|
# Machine config, run through the file/output
|
|
my $label; my $tmp;
|
|
foreach my $line ( @ipmioutput )
|
|
{
|
|
$line =~ s/\s+/ /g;
|
|
if ( $sensor eq 'fan' && $line =~ /.*RPM.*ok/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\.speed.*/; $label = $1; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)\.tach.*/; $label = $1; }
|
|
if ( $machine eq 'x2100') { $line =~ s/(.*)\s+\|.*RPM.*/\L$1/; $label = $line; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*) Tach.*/; $label = $1; }
|
|
if ( $machine eq 'shg2' ) { $line =~ s/(.*)\s+\|.*RPM.*\|\s+ok/$1/; $label = $1; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /(.*)\/TACH.*RPM.*/; $label = $1; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /(.*)\/TACH.*RPM.*/; $label = $1; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\/TACH.*RPM.*/; $label = $1; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) RPM\s+\|.*RPM.*/; $label = $1; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*) Tach.*/; $label = $1; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\s+\|.*RPM.*\|\s+ok/; $label = $1; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\s+\|.*RPM.*\|\s+ok/; $label = $1; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\s+\|.*RPM.*\|\s+ok/; $label = $1; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\s+\|.*RPM.*\|\s+ok/; $label = $1; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|.*RPM.*\|\s+ok/; $label = $1; }
|
|
|
|
}
|
|
elsif ( $sensor eq 'fan' && $line =~ /\#\d+\s+\S+\s+Yes.*\%/ ) {
|
|
if ( $machine eq 'hpasmcli' ) { $line =~ /\#(\d+)\s+(.*)\s+Yes.*\%.*/; $label = "$2_$1"; }
|
|
}
|
|
|
|
if ( $sensor eq 'temp' && $line =~ /.*degree.*ok/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\ \|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)temp.*/; $label = $1; }
|
|
if ( $machine eq 'x2100') { $line =~ s/(.*)\s+\|.*deg.*/\L$1/; $label = $line; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*) Temp.*/; $label = $1; }
|
|
if ( $machine eq 'ibmls4x' ) { $line =~ /(.*) TEMP.*/; $label = $1; }
|
|
if ( $machine eq 'shg2' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /MB\/T\_(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /MB\/T\_(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'vb1205' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) Temp.*/; $label = $1; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*) Temp.*/; $label = $1; }
|
|
if ( $machine eq 'ibmlsxx' ) { $line =~ /(.*) TEMP.*/; $label = $1; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\ \|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\ Temp\s+|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\ Temp\s+|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\ Temp\s+|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'm610' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
if ( $machine eq 'proliantg5' ) { $line =~ /(.*)\s+\|.*deg.*/; $label = $1; }
|
|
}
|
|
elsif ( $sensor eq 'temp' && $line =~ /\d+C\/\d+F/ ) {
|
|
if ( $machine eq 'hpasmcli' ) { $line =~ /.*\s+(.*)\s+\d+C\/\d+F\s+\d+C\/\d+F/; $label = $1; }
|
|
}
|
|
|
|
if ( $sensor eq 'volt' && $line =~ /.*Volts.*/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\ \|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)\ \|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'x2100') { $line =~ s/(.*)\s+\|.*Volts.*/\L$1/; $label = $line; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'ibmls4x' ) { $line =~ /(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'shg2' ) { $line =~ /(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /MB\/V\_(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /MB\/(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'vb1205' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) Volt\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'ibmlsxx' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'ibmhsxx' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\ \|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\s+\|.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|\s+.*Volts.*/; $label = $1; }
|
|
}
|
|
|
|
if ( $label )
|
|
{
|
|
$label =~ s/\.//g;
|
|
$label =~ s/\-/dash/g;
|
|
$label =~ s/\+//;
|
|
$label =~ s/\s+//g;
|
|
$label =~ s/(.*)/\L$1/;
|
|
$label =~ s/\//_/g;
|
|
$label =~ s/\#/_/g;
|
|
|
|
# Random fixups
|
|
if ( $machine eq 'x2270' ) { $label =~ s/v_//; }
|
|
if ( $machine eq 'x4x00' ) { $label =~ s/^sysv\_/mbv\_/; }
|
|
if ( $machine eq 'tx120' ) { $label =~ s/main//; }
|
|
|
|
if ( $base{$machine}->{$label} )
|
|
{
|
|
$cnf{ $label. '.label' } = $base{$machine}->{$label};
|
|
}
|
|
else
|
|
{
|
|
$cnf{ $label. '.label' } = $label;
|
|
}
|
|
}
|
|
|
|
undef ($label);
|
|
}
|
|
foreach my $key ( sort(keys(%cnf)) )
|
|
{
|
|
print "$key $cnf{$key}\n";
|
|
}
|
|
}
|
|
exit 0;
|
|
}
|
|
|
|
my %res; my $label; my $value;
|
|
foreach my $line ( @ipmioutput )
|
|
{
|
|
$line =~ s/\s+/ /g;
|
|
if ( $sensor eq 'fan' && $line =~ /.*RPM.*ok/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\.speed\s+\|\s+(\d+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)\.tach\s+\|\s+(\d+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2100' ) { $line =~ s/(.*)\s+\|\s+(\S+) RPM.*/\L$1/; $label = $line; $value = $2; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*) Tach\s+\| (\d+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'shg2' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|.*ok/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /(.*)\/TACH\s+\|\s+(.*) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /(.*)\/TACH\s+\|\s+(.*) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\/TACH\s+\|\s+(\S+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) RPM\s+\|\s+(\S+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*) Tach\s+\|\s+(\S+) RPM.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|\s+ok/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|\s+ok/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|\s+ok/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|\s+ok/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|\s+(.*) RPM.*\|\s+ok/; $label = $1; $value = $2; }
|
|
}
|
|
elsif ( $sensor eq 'fan' && $line =~ /\#\d+\s+\S+\s+Yes.*\%/ ) {
|
|
if ( $machine eq 'hpasmcli' ) { $line =~ /\#(\d+)\s+(.*)\s+Yes\s+\w+\s+(\d+)\%.*/; $label = "$2_$1"; $value = $3; }
|
|
}
|
|
|
|
if ( $sensor eq 'temp' && $line =~ /.*degree.*ok/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)temp\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2100' ) { $line =~ s/(.*)\s+\|\s+(\d+) deg.*/\L$1/; $label = $line; $value = $2; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*) Temp\s+\|\s+(\d+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmls4x' ) { $line =~ /(.*) TEMP\s+\|\s+(\d+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'shg2' ) { $line =~ /(.*)\s+\|\s+(\d+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /MB\/T\_(.*)\s+\|\s+(\d+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /MB\/T\_(.*)\s+\|\s+(\d+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\s+\|\s+(\S+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'vb1205' ) { $line =~ /(.*)\s+\|\s+(\S+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) Temp\s+\|\s+(\S+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*) Temp\s+\|\s+(\S+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmlsxx' ) { $line =~ /(.*) TEMP\s+\|\s+(\S+) deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\ Temp\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\ Temp\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\ Temp\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'm610' ) { $line =~ /(.*)\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'proliantg5' ) { $line =~ /(.*)\s+\|\s+(\S+)\ deg.*/; $label = $1; $value = $2; }
|
|
}
|
|
elsif ( $sensor eq 'temp' && $line =~ /\d+C\/\d+F/ ) {
|
|
if ( $machine eq 'hpasmcli' ) { $line =~ /.*\s+(.*)\s+(\d+)C\/\d+F\s+\d+C\/\d+F/; $label = $1; $value = $2; }
|
|
}
|
|
|
|
if ( $sensor eq 'volt' && $line =~ /.*Volt.*ok/ )
|
|
{
|
|
if ( $machine eq 'x4x00' ) { $line =~ /(.*)\ \|\s+(\S+)\ Volt.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'v20z' ) { $line =~ /(.*)\s+\|\s+(\S+)\ Volt.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2100' ) { $line =~ s/(.*)\s+\|\s+(\S+)\ Volt.*/\L$1/; $label = $line; $value = $2; }
|
|
if ( $machine eq 'x346' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmls4x' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'shg2' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2250' ) { $line =~ /MB\/V\_(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x2270' ) { $line =~ /MB\/(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'x4150' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'vb1205' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'pe2650' ) { $line =~ /(.*) Volt\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmx3xx0' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'ibmlsxx' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'ibmhsxx' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; $label =~ s/\./_/g; }
|
|
if ( $machine eq 'tx120' ) { $line =~ /(.*)\ \|\s+(\S+)\ Volt.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'xs23' ) { $line =~ /(.*)\ \|\s+(\S+)\ Volt.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'hermon' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'aocipmi20e' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
if ( $machine eq 'asmb2' ) { $line =~ /(.*)\s+\|\s+(\S+) Volts.*/; $label = $1; $value = $2; }
|
|
}
|
|
|
|
if ( $label )
|
|
{
|
|
$label =~ s/\.//g;
|
|
$label =~ s/\-/dash/g;
|
|
$label =~ s/\+//;
|
|
$label =~ s/\s+//g;
|
|
$label =~ s/(.*)/\L$1/;
|
|
$label =~ s/\//_/g;
|
|
$label =~ s/\#/_/g;
|
|
|
|
# Random fixups
|
|
if ( $machine eq 'x2270' ) { $label =~ s/v_//; }
|
|
if ( $machine eq 'x4x00' ) { $label =~ s/^sysv\_/mbv\_/; }
|
|
if ( $machine eq 'tx120' ) { $label =~ s/main//; }
|
|
|
|
|
|
$res{$label} = $value;
|
|
}
|
|
undef ($label);
|
|
}
|
|
|
|
my $key;
|
|
foreach $key ( sort(keys(%res)) )
|
|
{
|
|
print "$key.value ".$res{$key}."\n";
|
|
}
|
|
|