Nagios Check freebsd-update
Olivier Sauzet
olivier.sauzet at univ-lr.fr
Mon Oct 27 14:27:15 UTC 2014
Hi,
I started wroting a short checkfor "freebsd-update install" and if its
necessary to reboot ...
But whith p11 in freebsd10 my check are broken...
Coul you tell me if its the right way for test if a rebbot is necessary...
Thanks...
#!/bin/sh
#
# Check if update are installed after a : freebsd-update fetch
# and test if reboot is needed
# KERN_VERS : kernel currently running
# FILESYSTEM_VERS : print the version (and patch) of the new kernel
# UPDATE_VERS : currently update version
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
KERN_VERS="$(uname -r | cut -d 'p' -f2 )"
FILESYSTEM_VERS="$(freebsd-version -k |cut -d 'p' -f2)"
UPDATE_VERS="$(cut -d '|' -f4 /var/db/freebsd-update/tag)"
BASEDIR="/"
BASE="/var/db/freebsd-update"
cd $BASE
# Construct a unique name from ${BASEDIR}
BDHASH=`echo $BASEDIR | sha256 -q`
if [ "$KERN_VERS" -ne "$UPDATE_VERS" ] || [ "$FILESYSTEM_VERS" -ne
"$UPDATE_VERS" ] ;then
if [ -f "$BASE/$BDHASH-install/INDEX-NEW" ];then
kern_patch=$(grep -c 'kernel' $BASE/$BDHASH-install/INDEX-NEW)
elif [ -f "$BASE/$BDHASH-rollback/INDEX-NEW" ];then
kern_patch=$(grep -c 'kernel' $BASE/$BDHASH-rollback/INDEX-NEW)
fi
# Check that we have updates ready to install
if [ -L ${BDHASH}-install ] && [ $kern_patch -ne 0 ]; then
echo "Updates (p$UPDATE_VERS) are available to install, AND
reboot are needed : Kern Pach = $kern_patch " && exit $STATE_WARNING
elif [ -L ${BDHASH}-install ];then
echo "Install update (p$UPDATE_VERS) by : freebsd-update install"
&& exit $STATE_WARNING
elif [ -L ${BDHASH}-rollback ] && [ $kern_patch -ne 0 ];then
echo "Reboot for apply Kern Patch: ($kern_patch patch), that
install completely update (p$UPDATE_VERS) " && exit $STATE_WARNING
fi
else
echo "OK - Systeme UpToDate" && exit $STATE_OK
fi
--
--------------------------------------------------------------------
Olivier S
--------------------------------------------------------------------
More information about the freebsd-questions
mailing list