version 1.1, 2013/10/12 18:47:34 |
version 1.2, 2013/10/13 04:20:52 |
|
|
#!/bin/sh |
#!/bin/sh |
# $Id$ |
# $Id$ |
|
|
|
# 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 |
. /usr/local/libexec/nagios/utils.sh |
|
|
grep rsnapshot /var/log/messages | tail -25 | ( |
grep rsnapshot /var/log/messages | tail -25 | ( |
STATUS=UNKNOWN |
STATUS=UNKNOWN |
|
LAST_STATUS= |
CRITICAL= |
CRITICAL= |
UNKNOWN= |
UNKNOWN= |
while read line; do |
while read line; do |
|
LAST_STATUS=`echo $line | cut -c 1-15` |
|
|
if [ "$line" != "${line% Starting snapshot*}" ]; then |
if [ "$line" != "${line% Starting snapshot*}" ]; then |
STATUS=STARTED |
STATUS=STARTED |
CRITICAL= |
CRITICAL= |
WARN= |
UNKNOWN= |
elif [ "$line" != "${line% Finished snapshot*}" ]; then |
elif [ "$line" != "${line% Finished snapshot*}" ]; then |
if [ $STATUS != 'CRITICAL' ]; then |
if [ $STATUS != 'CRITICAL' ]; then |
STATUS=FINISHED |
STATUS=FINISHED |
fi |
fi |
elif [ "$line" != "${line% ERROR*}" ]; then |
elif [ "$line" != "${line% ERROR*}" ]; then |
STATUS=CRITICAL |
STATUS=CRITICAL |
CRITICAL="$CRITICAL ${line#*]:}<br />" |
[ -n "$CRITICAL" ] && CRITICAL="$CRITICAL\n" |
|
CRITICAL="$CRITICAL ${line#*]:}" |
elif [ $STATUS != CRITICAL ]; then |
elif [ $STATUS != CRITICAL ]; then |
STATUS=UNKNOWN |
STATUS=UNKNOWN |
UNKNOWN="$UNKNOWN ${line#*]:}<br />" |
[ -n "$UNKNOWN" ] && UNKNOWN="$UNKNOWN\n" |
|
UNKNOWN="$UNKNOWN ${line#*]:}" |
fi |
fi |
done |
done |
|
|
|
[ $STATUS != UNKNOWN -a -n "$UNKNOWN" ] && UNKNOWN="\n$UNKNOWN" |
|
|
if [ $STATUS = "STARTED" -o $STATUS = "FINISHED" ]; then |
if [ $STATUS = "STARTED" -o $STATUS = "FINISHED" ]; then |
$ECHO OK |
$ECHO "OK: $STATUS $LAST_STATUS $UNKNOWN" |
exit $STATE_OK |
exit $STATE_OK |
elif [ $STATUS = UNKNOWN ]; then |
elif [ $STATUS = UNKNOWN ]; then |
$ECHO "UNKNOWN: $UNKNOWN" |
$ECHO "UNKNOWN: $LAST_STATUS $UNKNOWN" |
exit $STATE_UNKNOWN |
exit $STATE_UNKNOWN |
else |
else |
$ECHO "CRITICAL: $CRITICAL" |
$ECHO "CRITICAL: $LAST_STATUS $CRITICAL $UNKNOWN" |
exit $STATE_CRITICAL |
exit $STATE_CRITICAL |
fi |
fi |
) |
) |