Skip to content

Commit

Permalink
Improve command 'fans'
Browse files Browse the repository at this point in the history
- code simplified and cleaned up

XXX: The threshold logic for warning/critical messages seems broken but I'm not sure how it was intended to work. See: nikband#10
  • Loading branch information
gamato committed Oct 6, 2017
1 parent fd02604 commit 80af446
Showing 1 changed file with 39 additions and 42 deletions.
81 changes: 39 additions & 42 deletions check_qnap3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -426,54 +426,51 @@ elif [ "$strpart" == "powerstatus" ]; then

# Fan Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "fans" ]; then
ALLOUTPUT=""
PERFOUTPUT=""
WARNING=0
CRITICAL=0
FAN=1
FANCOUNT=$(_snmpget .1.3.6.1.4.1.24681.1.2.14.0 | awk '{print $4}')
while [ "$FAN" -le "$FANCOUNT" ]; do
FANSPEED=$(_snmpget .1.3.6.1.4.1.24681.1.2.15.1.3.$FAN | awk '{print $4}' | cut -c 2- )

#Performance data
if [ $FAN -gt 1 ]; then
PERFOUTPUT=$PERFOUTPUT" "
fi
PERFOUTPUT=$PERFOUTPUT"Fan-$FAN=$FANSPEED;$strWarning;$strCritical"

if [ "$FANSPEED" == "" ]; then
FANSTAT="CRITICAL: $FANSPEED RPM"
CRITICAL=1
ALLOUTPUT=""
PERFOUTPUT=""
WARNING=0
CRITICAL=0
FAN=1
FANCOUNT="$(_snmpgetval .1.3.6.1.4.1.24681.1.2.14.0)"

elif [ "$FANSPEED" -le "$strCritical" ]; then
FANSTAT="CRITICAL: $FANSPEED RPM"
CRITICAL=1
while [ "$FAN" -le "$FANCOUNT" ]; do
FANSPEED="$(_snmpgetval ".1.3.6.1.4.1.24681.1.2.15.1.3.$FAN" | sed -E 's/"([0-9]+) ?RPM"/\1/')"

elif [ "$FANSPEED" -le "$strWarning" ]; then
FANSTAT="WARNING: $FANSPEED RPM"
WARNING=1
else
FANSTAT="OK: $FANSPEED RPM"
fi
#Performance data
if [ $FAN -gt 1 ]; then
PERFOUTPUT="$PERFOUTPUT "
fi
PERFOUTPUT="${PERFOUTPUT}Fan-$FAN=$FANSPEED;$strWarning;$strCritical"

if [ "$FAN" -lt "$FANCOUNT" ]; then
ALLOUTPUT="${ALLOUTPUT}Fan #${FAN}: $FANSTAT, "
else
ALLOUTPUT="${ALLOUTPUT}Fan #${FAN}: $FANSTAT"
fi
if [ "$FANSPEED" == "" ]; then
FANSTAT="CRITICAL: $FANSPEED RPM"
CRITICAL=1
elif [ "$FANSPEED" -le "$strCritical" ]; then
FANSTAT="CRITICAL: $FANSPEED RPM"
CRITICAL=1
elif [ "$FANSPEED" -le "$strWarning" ]; then
FANSTAT="WARNING: $FANSPEED RPM"
WARNING=1
else
FANSTAT="OK: $FANSPEED RPM"
fi

FAN=`expr $FAN + 1`
done
ALLOUTPUT="${ALLOUTPUT}Fan #${FAN}: $FANSTAT"
if [ "$FAN" -lt "$FANCOUNT" ]; then
ALLOUTPUT="${ALLOUTPUT}, "
fi
FAN="`expr $FAN + 1`"
done

echo $ALLOUTPUT"|"$PERFOUTPUT
echo "$ALLOUTPUT|$PERFOUTPUT"

if [ $CRITICAL -eq 1 ]; then
exit 2
elif [ $WARNING -eq 1 ]; then
exit 1
else
exit 0
fi
if [ $CRITICAL -eq 1 ]; then
exit 2
elif [ $WARNING -eq 1 ]; then
exit 1
else
exit 0
fi

# System Uptime----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "systemuptime" ]; then
Expand Down

0 comments on commit 80af446

Please sign in to comment.