#!/bin/sh
model=`/sbin/sysctl hw.model | cut -d" " -f 3`
/usr/sbin/envstat | awk -v model="$model" '
BEGIN {
printf("Model: %s\n", model);
section = "";
}
{
if ($1 ~ /^\[.*]$/)
section = $1;
if (model == "SUNW,Sun-Blade-1000") {
if (section ~ /admtemp[0-3]/) {
n = section;
sub("\\[admtemp", "", n);
sub("]", "", n);
c = " cpu" n;
$1 ~ /internal/ sub(" internal", " ambient");
$1 ~ /external/ sub(" external", c);
}
}
if (model == "SUNW,Sun-Fire-V240" || model == "SUNW,Sun-Fire-V210") {
$1 ~ /fan 0/ sub("fan 0", "F0.RS");
$1 ~ /fan 1/ sub("fan 1", "F1.RS");
$1 ~ /fan 2/ sub("fan 2", "F2.RS");
$1 ~ /fan 4/ sub(" fan 4", "MB.P0.F1.RS");
$1 ~ /fan 5/ sub(" fan 5", "MB.P1.F0.RS");
$1 ~ /fan 6/ sub(" fan 6", "MB.P0.F0.RS");
$1 ~ /fan 7/ sub(" fan 7", "MB.P1.F1.RS");
$1 ~ /external 1/ sub(" external 1", "MB.P0.T_CORE");
$1 ~ /external 2/ sub(" external 2", "MB.P1.T_CORE");
$1 ~ /Vbatt/ sub(" Vbatt", "MB.BAT.V_BAT");
$1 ~ /Vccp/ sub(" Vccp", "MB.P0.V_CORE");
$1 ~ /V3.0 0/ sub(" V3.0 0", "MB.V_+1V5");
$1 ~ /V3.0 1/ sub(" V3.0 1", "MB.V_+2V5");
$1 ~ /V3.0 2/ sub(" V3.0 2", "MB.V_VCCTM");
$1 ~ /V3.0 3/ sub(" V3.0 3", "MB.V_GBE_CORE");
$1 ~ /V3.0 4/ sub(" V3.0 4", "MB.V_GBE_+2V5");
$1 ~ /V2.5 0/ sub(" V2.5 0", "MB.V_VTT");
$1 ~ /V2.5 1/ sub(" V2.5 1", "MB.P1.V_CORE");
$1 ~ /temperature-sensor/ sub("temperature-sensor", " MB.T_ENC");
}
if (model == "SUNW,Sun-Fire-V210") {
$1 ~ /fan 3/ sub("fan 3", "F3.RS");
}
if (model == "SUNW,Sun-Fire-V440") {
if (section ~ /adm1026hm0/) {
$1 ~ /fan 0/ sub(" fan 0", "FT0.F0.TACH");
$1 ~ /fan 1/ sub(" fan 1", "FT1.F0.TACH");
$1 ~ /fan 2/ sub(" fan 2", "FT1.F1.TACH");
$1 ~ /Vbatt/ sub(" Vbatt", "MB.BAT.V_BAT");
$1 ~ /internal/ sub(" internal", "SCSIBP.T_AMB");
$1 ~ /V3.3 standby/ sub(" V3.3 standby", "MB.V_+3V3STBY");
$1 ~ /V3.3 main/ sub(" V3.3 main", " MB.V_+3V3");
$1 ~ /V5.0/ sub(" V5.0", "MB.V_+5V");
$1 ~ /V+12/ sub(" V+12", "MB.V_+12V");
$1 ~ /V-12/ sub(" V+12", "MB.V_-12V");
$1 ~ /V3.0 0/ sub(" V3.0 0", "MB.V_+1V5");
$1 ~ /V3.0 1/ sub(" V3.0 1", "MB.V_VCCTM");
$1 ~ /V3.0 2/ sub(" V3.0 2", "MB.V_SCSI_CORE");
$1 ~ /V3.0 3/ sub(" V3.0 3", "MB.V_NET0_1V2D");
$1 ~ /V3.0 4/ sub(" V3.0 4", "MB.V_NET1_1V2D");
$1 ~ /V3.0 5/ sub(" V3.0 5", "MB.V_NET0_1V2A");
$1 ~ /V2.5 0/ sub(" V2.5 0", "MB.V_NET1_1V2A");
}
if (section ~ /admtemp[0-3]/) {
n = section;
sub("\\[admtemp", "", n);
sub("]", "", n);
i = "C" n ".T_AMB";
e = "C" n ".P0.T_CORE";
$1 ~ /internal/ sub(" internal", i);
$1 ~ /external/ sub("external", e);
}
$1 ~ /temperature-sensor/ sub("temperature-sensor", " MB.T_AMB");
}
print;
}'