File check_running_kernel of Package monitoring-plugins-running_kernel

#!/bin/sh
#
# Nagios plugin to check if the most recent installed kernel is running
#

STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3

TESTER="kernel-uname-r"
APPEND=""

LATEST_KERNEL=$(rpm -q --whatprovides $TESTER | tail -n 1)

case $LATEST_KERNEL in
        no\ package\ provides*) LATEST_KERNEL=$(rpm -q kernel-default | tail -n 1) ; TESTER="kernel" ; APPEND="-default" ;;
esac

LATEST_KERNEL_UR=$(rpm -q --provides "$LATEST_KERNEL" | grep "$TESTER = " | tail -n 1 | sed -e "s@.*= @@" | sed -e "s@.xz@@")$APPEND
UR=$(uname -r)

if [ -z "$LATEST_KERNEL" ]; then
        echo "$0: UNKNOWN - could not determine latest installed kernel"
        exit $STATE_UNKNOWN
fi
if [ -z "$LATEST_KERNEL_UR" ]; then
        echo "$0: UNKNOWN - could not determine uname -r of latest installed kernel"
        exit $STATE_UNKNOWN
fi
if [ -z "$UR" ]; then
        echo "$0: UNKNOWN - could not determine uname -r"
        exit $STATE_UNKNOWN
fi
if [ "$LATEST_KERNEL_UR" != "$UR" ] ; then
        echo "WARNING: running kernel ($UR) is not latest installed ($LATEST_KERNEL_UR)"
        exit $STATE_WARNING
fi

echo "OK: running kernel ($UR) is latest"
exit $STATE_OK

# vim: ts=4:sw=4:noet
openSUSE Build Service is sponsored by