From 37b69bf17b29a7ca407a4189fc37db481c2525a6 Mon Sep 17 00:00:00 2001 From: gjb Date: Thu, 22 Jan 2015 02:24:42 +0000 Subject: [PATCH] MFC r277216: Evaluate running userland/kernel version in daily periodic(8) run, taken from uname(1) '-U' and '-K' flags. Sponsored by: The FreeBSD Foundation git-svn-id: svn://svn.freebsd.org/base/stable/9@277521 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- etc/defaults/periodic.conf | 4 +++ etc/periodic/daily/510.status-world-kernel | 36 ++++++++++++++++++++++ etc/periodic/daily/Makefile | 1 + share/man/man5/periodic.conf.5 | 7 ++++- 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100755 etc/periodic/daily/510.status-world-kernel diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index 0e814783e..2e218c815 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -152,6 +152,10 @@ pkg_info="pkg_info" # Use this program daily_queuerun_enable="YES" # Run mail queue daily_submit_queuerun="YES" # Also submit queue +# 510.status-world-kernel +daily_status_world_kernel="YES" # Check the running + # userland/kernel version + # 800.scrub-zfs daily_scrub_zfs_enable="NO" daily_scrub_zfs_pools="" # empty string selects all pools diff --git a/etc/periodic/daily/510.status-world-kernel b/etc/periodic/daily/510.status-world-kernel new file mode 100755 index 000000000..4e08a04d2 --- /dev/null +++ b/etc/periodic/daily/510.status-world-kernel @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# Check that the running userland and kernel versions are in sync. + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_status_world_kernel" in + [Yy][Ee][Ss]) + rc=0 + _U=$(/usr/bin/uname -U 2>/dev/null) + _K=$(/usr/bin/uname -K 2>/dev/null) + [ -z "${_U}" -o -z "${_K}" ] && exit 0 + echo "" + echo "Checking userland and kernel versions:" + if [ "${_U}" != "${_K}" ]; then + echo "Userland and kernel are not in sync" + echo "Userland version: ${_U}" + echo "Kernel version: ${_K}" + rc=1 + else + echo "Userland and kernel are in sync." + fi + ;; + + *) rc=0;; +esac + +exit $rc diff --git a/etc/periodic/daily/Makefile b/etc/periodic/daily/Makefile index 148d2ecd4..8781bf9aa 100644 --- a/etc/periodic/daily/Makefile +++ b/etc/periodic/daily/Makefile @@ -18,6 +18,7 @@ FILES= 100.clean-disks \ 409.status-gconcat \ 420.status-network \ 450.status-security \ + 510.status-world-kernel \ 999.local # NB: keep these sorted by MK_* knobs diff --git a/share/man/man5/periodic.conf.5 b/share/man/man5/periodic.conf.5 index 1f9eec8db..f4244f366 100644 --- a/share/man/man5/periodic.conf.5 +++ b/share/man/man5/periodic.conf.5 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 30, 2012 +.Dd January 15, 2015 .Dt PERIODIC.CONF 5 .Os .Sh NAME @@ -633,6 +633,11 @@ if you want to enable reverse DNS lookups. Set to .Dq Li YES if you want to enable NTP status check. +.It Va daily_status_world_kernel +.Pq Vt bool +Set to +.Dq Li YES +to check the running userland and kernel are in sync. .It Va daily_queuerun_enable .Pq Vt bool Set to -- 2.45.0