Annotation of nagios/check_rsnapshot/check_rsnapshot, Revision 1.2
1.1 andrew 1: #!/bin/sh
1.2 ! andrew 2: # $Id: check_rsnapshot,v 1.1 2013/10/12 17:47:34 andrew Exp $
! 3:
! 4: # This relies on my run_rsnapshot wrapper that outputs things
! 5: # via syslog, so really to custom to be much use.
1.1 andrew 6:
7: . /usr/local/libexec/nagios/utils.sh
8:
9: grep rsnapshot /var/log/messages | tail -25 | (
10: STATUS=UNKNOWN
1.2 ! andrew 11: LAST_STATUS=
1.1 andrew 12: CRITICAL=
13: UNKNOWN=
14: while read line; do
1.2 ! andrew 15: LAST_STATUS=`echo $line | cut -c 1-15`
! 16:
1.1 andrew 17: if [ "$line" != "${line% Starting snapshot*}" ]; then
18: STATUS=STARTED
19: CRITICAL=
1.2 ! andrew 20: UNKNOWN=
1.1 andrew 21: elif [ "$line" != "${line% Finished snapshot*}" ]; then
22: if [ $STATUS != 'CRITICAL' ]; then
23: STATUS=FINISHED
24: fi
25: elif [ "$line" != "${line% ERROR*}" ]; then
26: STATUS=CRITICAL
1.2 ! andrew 27: [ -n "$CRITICAL" ] && CRITICAL="$CRITICAL\n"
! 28: CRITICAL="$CRITICAL ${line#*]:}"
1.1 andrew 29: elif [ $STATUS != CRITICAL ]; then
30: STATUS=UNKNOWN
1.2 ! andrew 31: [ -n "$UNKNOWN" ] && UNKNOWN="$UNKNOWN\n"
! 32: UNKNOWN="$UNKNOWN ${line#*]:}"
1.1 andrew 33: fi
34: done
35:
1.2 ! andrew 36: [ $STATUS != UNKNOWN -a -n "$UNKNOWN" ] && UNKNOWN="\n$UNKNOWN"
! 37:
1.1 andrew 38: if [ $STATUS = "STARTED" -o $STATUS = "FINISHED" ]; then
1.2 ! andrew 39: $ECHO "OK: $STATUS $LAST_STATUS $UNKNOWN"
1.1 andrew 40: exit $STATE_OK
41: elif [ $STATUS = UNKNOWN ]; then
1.2 ! andrew 42: $ECHO "UNKNOWN: $LAST_STATUS $UNKNOWN"
1.1 andrew 43: exit $STATE_UNKNOWN
44: else
1.2 ! andrew 45: $ECHO "CRITICAL: $LAST_STATUS $CRITICAL $UNKNOWN"
1.1 andrew 46: exit $STATE_CRITICAL
47: fi
48: )
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>