Skip to content
Snippets Groups Projects
Commit 14217f99 authored by Per Cederqvist's avatar Per Cederqvist
Browse files

Added check_lysrdiff script.

parent bfd32350
No related branches found
No related tags found
No related merge requests found
DESTDIR = /usr/local/nagios/libexec/ DESTDIR = /usr/local/nagios/libexec/
SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \ SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \
check_link_status check_true check_link_status check_true check_lysrdiff
all:; all:;
......
#!/bin/sh
#
# This check script is maintained in a Subversion repository at
# http://lsvn.lysator.liu.se/svnroot/nagios-plugins. Contact
# <ceder@lysator.liu.se> for commit access.
activity=16
stale=36
usage () {
echo $0: usage: $0 '[ opt ] partno' >&2
echo options: >&2
echo ' --activty N Warn if no backup completed in the last N hours.' >&2
echo ' --stale N Critical if oldest backup is more than N hours old.' >&2
exit 3
}
while [ $# -gt 1 ]
do
case "x$1" in
x--activity)
activity=$2
shift
shift;;
x--stale)
stale=$2
shift
shift;;
x--*)
usage
exit 1;;
x*) break;;
esac
done
if [ $# != 1 ]
then
usage
fi
partno=$1
BASE=/lysrdiff/$partno/perm
if [ ! -f $BASE/lysrdiff.id ]
then
echo CRITICAL - $BASE: no such file
exit 2
fi
if [ "`cat $BASE/lysrdiff.id`" != "$partno perm" ]
then
echo CRITICAL - found `cat $BASE/lysrdiff.id` instead of $lysrdiff >&2
exit 2
fi
acttime=`date '+%Y-%m-%d %H:%M:%S' -d "$activity hours ago"`
staletime=`date '+%Y-%m-%d %H:%M:%S' -d "$stale hours ago"`
statecache=/tmp/lysrdiff-nagios-state
state=$statecache-$partno
find $BASE/lysrdiff/state -type f \
-printf "%TY-%Tm-%Td %TH:%TM:%TS %P\n" \
| sort > $statecache.$partno.$$
mv -f $statecache.$partno.$$ $state
echo $staletime MARKER \
| sort $state - \
| grep -- '-start$\|MARKER' \
| sed -e '/MARKER$/,$d' \
> $state-stale
echo $acttime MARKER \
| sort $state - \
| grep -- '-end$\|MARKER' \
| sed -e '1,/MARKER$/d' \
> $state-active
STALE=`wc -l < $state-stale`
ACTIVITY=`wc -l < $state-active`
if grep -q -- '-fail$' $state
then
echo -n "CRITICAL - Failed backups: "
sed -n 's/-fail$//p' $state \
|awk 'BEGIN { sz = 0 }
NR > 1 && sz < 198 { printf ", "; sz += 2 }
sz < 200 { printf "%s", $3; sz += length($3) }
END { if (sz >= 200) printf ", others" } ' \
|sed s'/, \([^,]*\)$/ and \1/'
echo '. | activity='$ACTIVITY stale=$STALE failed=`grep -c -- '-fail$' $state`
exit 2
fi
if [ $STALE -gt 0 ]
then
echo -n "CRITICAL - Stale backups: "
sed 's/-start$//' $state-stale \
|awk 'BEGIN { sz = 0 }
NR > 1 && sz < 198 { printf ", "; sz += 2 }
sz < 200 { printf "%s", $3; sz += length($3) }
END { if (sz >= 200) printf ", others" } ' \
|sed s'/, \([^,]*\)$/ and \1/'
echo '. | activity='$ACTIVITY stale=$STALE failed=0
exit 2
fi
if [ $ACTIVITY = 0 ]
then
echo -n 'WARNING - No activity. | activity='0 stale=$STALE failed=0
exit 1
fi
echo 'OK - all ok. | activity='$ACTIVITY stale=0 failed=0
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment