mirror of
https://github.com/opinkerfi/nagios-plugins.git
synced 2024-12-23 09:33:56 +01:00
94 lines
1.5 KiB
Bash
Executable File
94 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
|
|
# Nagios exit codes
|
|
OK=0
|
|
WARN=1
|
|
CRIT=2
|
|
UNKNOWN=3
|
|
|
|
# Default warning thresholds
|
|
warning=60
|
|
critical=86400
|
|
|
|
|
|
print_help() {
|
|
echo "check_time version $VERSION"
|
|
echo "This plugin checks the time of a remote host via NRPE"
|
|
echo ""
|
|
echo "Usage: $0 -H <host> [-w seconds] [-c seconds]"
|
|
echo ""
|
|
echo "Example: check time of host examplehost, warn if time difference is"
|
|
echo "more than 60 seconds, critical if difference is more than 86400 seconds"
|
|
echo "# check_time -H examplehost -w 60 -c 86400"
|
|
}
|
|
|
|
if [ $# -eq 0 ]; then
|
|
print_help ;
|
|
exit $UNKNOWN
|
|
fi
|
|
|
|
|
|
# Parse arguments
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case $1
|
|
in
|
|
-H)
|
|
hostaddress=$2
|
|
shift 2
|
|
;;
|
|
|
|
|
|
-w)
|
|
warning=$2
|
|
shift 2
|
|
;;
|
|
|
|
-c)
|
|
critical=$2
|
|
shift 2
|
|
;;
|
|
|
|
*)
|
|
print_help ;
|
|
exit $UNKNOWN
|
|
;;
|
|
esac
|
|
done
|
|
|
|
LOCALTIME=`/bin/date +%s`
|
|
REMOTETIME=`/usr/lib/nagios/plugins/check_nrpe -H $hostaddress -c get_time`
|
|
|
|
for i in $warning $critical ; do
|
|
if [ ! $i -ge 0 ]; then
|
|
echo "$i is not a valid value. Should be in seconds. See --help for usage."
|
|
exit $UNKNOWN
|
|
fi
|
|
done
|
|
|
|
|
|
|
|
DIFF=$(echo $LOCALTIME-$REMOTETIME | bc )
|
|
|
|
if [ $DIFF -lt 0 ]; then
|
|
DIFF=$(echo $DIFF*-1|bc)
|
|
fi
|
|
|
|
RESULT="timedrift=$DIFF seconds | timedrift=${DIFF}s;$warning;$critical"
|
|
|
|
if [ $DIFF -gt $critical ]; then
|
|
echo "CRITICAL - $RESULT"
|
|
exit $CRIT
|
|
fi
|
|
|
|
if [ $DIFF -gt $warning ]; then
|
|
echo "WARNING - $RESULT"
|
|
exit $WARN
|
|
fi
|
|
|
|
|
|
echo "OK - $RESULT"
|
|
exit 0
|