#!/usr/bin/perl # (C) Chris Wilson , 2005-06-04 # Released under the GNU General Public License (GPL) # modified to map ipmitool(8) to MRTG # by BAS use warnings; use strict; use Switch; # teslina change - no auth ##open IPMI, "ipmitool -U netadmin -f ~/.ipmi/passfile -H $ARGV[0] -c sdr list full |" or die "ipmitool: $!"; open IPMI, "ipmitool -c sdr list full |" or die "ipmitool: $!"; my %found; my %bad; sub trim ($) { my ($v) = @_; $v =~ s/^ +//; $v =~ s/ +$//; return $v; } #Order of output is: # # Proc 1 Temp # Proc 2 Temp # Motherboard Ambient Temp #n/a# Planar Temp #n/a# Riser Card Temp #n/a# Power Supply 1 Temp #n/a# Power Supply 2 Temp #n/a# CMOS Battery Volt # Fan 1A RPM # Fan 1B RPM # Fan 2A RPM # Fan 2B RPM # Fan 3A RPM # Fan 3B RPM # Fan 4A RPM # Fan 4B RPM my @ArrayFinal; my $Count = 0; while (my $line = ) { my @ArrLine; my $Target; my $Value; chomp $line; @ArrLine = split(/,/, $line); # this regexp needs [to be] rewritten for ipmi "-c" #unless ($line =~ m'^(.*)\,(.*)\,(.*)$') #{ # die "Bad format in ipmitool output: $line"; #} $Target = $ArrLine[0]; $Value = $ArrLine[1]; $ArrayFinal[$Count][0] = $ArrLine[0]; $ArrayFinal[$Count][1] = $ArrLine[1]; $Count++; } #teslina change #switch ($ARGV[1]) { # switch ($ARGV[0]) { # added by teslina case "cputemp" {print "$ArrayFinal[0][1]\n$ArrayFinal[1][1]\n"; }; case "systemp" {print "$ArrayFinal[2][1]\n\n"; }; case "fanset1" {print "$ArrayFinal[3][1]\n$ArrayFinal[4][1]\n"; }; case "fanset2" {print "$ArrayFinal[5][1]\n$ArrayFinal[6][1]\n"; }; case "fanset3" {print "$ArrayFinal[7][1]\n$ArrayFinal[8][1]\n"; }; case "fanset4" {print "$ArrayFinal[9][1]\n$ArrayFinal[10][1]\n"; }; # eof teslina case "cpu" {print "$ArrayFinal[0][1]\n$ArrayFinal[1][1]\n"; }; case "mb" {print "$ArrayFinal[2][1]\n$ArrayFinal[3][1]\n"; }; case "ri" {print "$ArrayFinal[4][1]\n$ArrayFinal[4][1]\n"; }; case "ps" {print "$ArrayFinal[5][1]\n$ArrayFinal[6][1]\n"; }; case "cb" {print "$ArrayFinal[7][1]\n$ArrayFinal[7][1]\n"; }; case "f1" {print "$ArrayFinal[8][1]\n$ArrayFinal[9][1]\n"; }; case "f2" {print "$ArrayFinal[10][1]\n$ArrayFinal[11][1]\n"; }; case "f3" {print "$ArrayFinal[12][1]\n$ArrayFinal[13][1]\n"; }; case "f4" {print "$ArrayFinal[14][1]\n$ArrayFinal[15][1]\n"; }; } print "0\ncorky.shoe.org\n";