I have been struggling with this as well. Basicly, you have make sure your output of the output script looks like<br><br><br><br><br><pre>Device Temp(°C) Temp(°F)<br>------------------------------<br><img src="http://localhost/hobbit/gifs/green.gif" alt="green" border="0" height="16" width="16">
Cpu1 33 91<br><img src="http://localhost/hobbit/gifs/green.gif" alt="green" border="0" height="16" width="16"> Mainboard 35 95<br>--------------------------------</pre><br><br>I've ended up with the following, using lm_sensors input.
<br>#!/bin/sh<br><br> COLUMN=temperature # Name of the column<br> TEST=temperature<br><br>echo " $BBTMP/$MACHINE.temperature.$$"<br><br> # Do whatever you need to test for something<br> # As an example, go red if /tmp/badstuff exists.
<br><br>ENV_CELSIUS=$(sensors |grep 'CPU Temp'|awk '{print $3}'|sed -e 's/+//' -e 's/°C//' -e 's/..$//')<br>ENV_CELSIUSMAINB=$(sensors |grep 'M/B' |awk '{print $3}'|sed -e 's/+//' -e 's/°C//')
<br>ENV_HIGHWARN=38<br>ENV_HIGHPANIC=42<br>ENV_CPU="Cpu1" <br>ENV_MAINB="Mainboard"<br>$AWK -v CELSIUS=$ENV_CELSIUS -v HIGHWARN=$ENV_HIGHWARN -v HIGHPANIC=$ENV_HIGHPANIC -v CPU=$ENV_CPU \<br> -v CELSIUSMAINB=$ENV_CELSIUSMAINB -v MAINB=$ENV_MAINB \
<br> 'BEGIN { <br> print "Device Temp(°C) Temp(°F)";<br> print "------------------------------";<br> COLOR="green";<br> if (CELSIUS >= HIGHPANIC) {
<br> COLOR="red";<br> printf("&red %-12s %3d %3d\n",CPU,CELSIUS,CELSIUS*9/5+32);<br> printf("&green %-12s %3d %3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);
<br> <br> } else if (CELSIUS >= HIGHWARN) {<br> if (COLOR != "red")<br> COLOR = "yellow";<br> printf("&yellow %-12s %3d %3d\n",CPU,CELSIUS,CELSIUS*9/5+32);
<br> printf("&green %-12s %3d %3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);<br> } else {<br> printf("&green %-12s %3d %3d\n",CPU,CELSIUS,CELSIUS*9/5+32);
<br> printf("&green %-12s %3d %3d\n",MAINB,CELSIUSMAINB,CELSIUSMAINB*9/5+32);<br> }<br> }<br> END {<br> print "-------------------------------------------------";
<br> if (COLOR == "green") {<br> print "Status green: All devices look okay";<br> exit 0<br> } else if (COLOR == "yellow") {
<br> print "Status yellow: Some devices are nearing their operational limits";<br> exit 1<br> } else if (COLOR =="red") {<br> print "Status red : SYSTEM NEAR THERMAL SHUTDOWN!!!";
<br> exit 2<br> } else {<br> print "Status purple : Unknown status";<br> exit -1<br> }<br> }' > $BBTMP/$MACHINE.temperature.$$
<br><br><br>COLOR=`$GREP Status $BBTMP/$MACHINE.temperature.$$| $SED 's/Status //'|$SED 's/:.*$//'`<br><br>#create log if NOT green<br>if [ $COLOR != "green" ]<br> then<br> TEMP=`$GREP $ENV_CPU $BBTMP/$MACHINE.temperature.$$| awk '{print $3}'`
<br> echo "$COLOR : `date '+%a %d %b %Y %H:%M:%S'` Temperature: $TEMP" >> $HOBBITCLIENTHOME/logs/temp_alerts.log<br>fi<br><br>DATA="Temperature status:<br>`$CAT $BBTMP/$MACHINE.temperature.$$`
<br><br>Last 10 Alerts:<br>`$TAIL $HOBBITCLIENTHOME/logs/temp_alerts.log`<br>"<br><br>LINE="status $MACHINE.$TEST $COLOR `date` $DATA"<br><br><br> Clean up our mess....<br>$RM -f $BBTMP/$MACHINE.temperature.$$
<br><br><br># Tell Hobbit about it<br> $BB $BBDISP "$LINE"<br><br><br>