===================================================================
RCS file: /cvs/nagios/check_rsnapshot/check_rsnapshot,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- nagios/check_rsnapshot/check_rsnapshot 2013/10/12 18:47:34 1.1
+++ nagios/check_rsnapshot/check_rsnapshot 2013/10/13 04:20:52 1.2
@@ -1,38 +1,48 @@
#!/bin/sh
-# $Id: check_rsnapshot,v 1.1 2013/10/12 17:47:34 andrew Exp $
+# $Id: check_rsnapshot,v 1.2 2013/10/13 03:20:52 andrew Exp $
+# This relies on my run_rsnapshot wrapper that outputs things
+# via syslog, so really to custom to be much use.
+
. /usr/local/libexec/nagios/utils.sh
grep rsnapshot /var/log/messages | tail -25 | (
STATUS=UNKNOWN
+ LAST_STATUS=
CRITICAL=
UNKNOWN=
while read line; do
+ LAST_STATUS=`echo $line | cut -c 1-15`
+
if [ "$line" != "${line% Starting snapshot*}" ]; then
STATUS=STARTED
CRITICAL=
- WARN=
+ UNKNOWN=
elif [ "$line" != "${line% Finished snapshot*}" ]; then
if [ $STATUS != 'CRITICAL' ]; then
STATUS=FINISHED
fi
elif [ "$line" != "${line% ERROR*}" ]; then
STATUS=CRITICAL
- CRITICAL="$CRITICAL ${line#*]:}
"
+ [ -n "$CRITICAL" ] && CRITICAL="$CRITICAL\n"
+ CRITICAL="$CRITICAL ${line#*]:}"
elif [ $STATUS != CRITICAL ]; then
STATUS=UNKNOWN
- UNKNOWN="$UNKNOWN ${line#*]:}
"
+ [ -n "$UNKNOWN" ] && UNKNOWN="$UNKNOWN\n"
+ UNKNOWN="$UNKNOWN ${line#*]:}"
fi
done
+ [ $STATUS != UNKNOWN -a -n "$UNKNOWN" ] && UNKNOWN="\n$UNKNOWN"
+
if [ $STATUS = "STARTED" -o $STATUS = "FINISHED" ]; then
- $ECHO OK
+ $ECHO "OK: $STATUS $LAST_STATUS $UNKNOWN"
exit $STATE_OK
elif [ $STATUS = UNKNOWN ]; then
- $ECHO "UNKNOWN: $UNKNOWN"
+ $ECHO "UNKNOWN: $LAST_STATUS $UNKNOWN"
exit $STATE_UNKNOWN
else
- $ECHO "CRITICAL: $CRITICAL"
+ $ECHO "CRITICAL: $LAST_STATUS $CRITICAL $UNKNOWN"
exit $STATE_CRITICAL
fi
)