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