#!/bin/bash function quit { case $1 in 0) echo "OK$2" ;; 1) echo "WARNING$2" ;; 2) echo "CRITICAL$2" ;; 3) echo "UNKNOWN$2" ;; esac exit $1 } CHECKNET=`host kernel.org | grep "has address" | head -n 1` if [ -z "$CHECKNET" ]; then quit 0 fi CHECKHOST=`ping -c 3 -w 1 kernel.org | grep received | awk '{ print $4 }'` if [ $CHECKHOST -lt 1 ]; then quit 0 fi KERNEL=`uname -r` SUBVERSION=`echo $KERNEL | sed -r "s/.*([0-9]+)$/\1/"` MAINKERNEL=`echo $KERNEL | sed -r "s/([0-9]*)$//;s/([.]{1})$//"` LASTKERNEL=`wget -q kernel.org -O /dev/stdout | sed -r "s/<[^>]*>//g;s/^[\ ]*//" | grep -i -A 1 stable | grep ${MAINKERNEL}` echo -n "Check kernel ($KERNEL): " if [ -z "${LASTKERNEL}" ]; then quit 2 ": $KERNEL too old" else LASTSUBKERNEL=`echo ${LASTKERNEL} | sed -r "s/.*([0-9]+)$/\1/"` if [ "${SUBVERSION}" != "${LASTSUBKERNEL}" ]; then quit 1 ": Update available ${LASTKERNEL}" else quit 0 fi fi quit 3