=================================================================== 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 )