From 161784155bf1ef9b435a4b4baa22deff87e53025 Mon Sep 17 00:00:00 2001 From: Michael Howe Date: Sat, 23 Dec 2023 14:03:16 +0000 Subject: [PATCH] New plugin to check that newaliases has run on /etc/aliases --- debian/changelog | 6 ++++ debian/nagios-plugins-local-client.install | 1 + plugins/check_newaliases | 35 ++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100755 plugins/check_newaliases diff --git a/debian/changelog b/debian/changelog index 36a71c9..9c2dcae 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +nagios-plugins-local (0.27) unstable; urgency=medium + + * Add check_newaliases + + -- Michael Howe Sat, 23 Dec 2023 14:02:10 +0000 + nagios-plugins-local (0.26) unstable; urgency=medium * Remove check_running_kernel and associated overrides as the upstream diff --git a/debian/nagios-plugins-local-client.install b/debian/nagios-plugins-local-client.install index f845d36..ad375c1 100644 --- a/debian/nagios-plugins-local-client.install +++ b/debian/nagios-plugins-local-client.install @@ -2,5 +2,6 @@ /usr/lib/nagios/plugins/check_configtool /usr/lib/nagios/plugins/check_md_raid /usr/lib/nagios/plugins/check_monit +/usr/lib/nagios/plugins/check_newaliases /usr/lib/nagios/plugins/check_iostat /usr/lib/nagios/plugins/check_systemd diff --git a/plugins/check_newaliases b/plugins/check_newaliases new file mode 100755 index 0000000..c8396f2 --- /dev/null +++ b/plugins/check_newaliases @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Simple script to check that /etc/aliases.db is newer than /etc/aliases for +# systems that require the db file to exist. +# +# Possibly a slight race condition if you deploy /etc/aliases and run +# newaliases within the same second, but this is highly unlikely. + +set -e +set -u + +NEWALIASES=/usr/bin/newaliases +REQUIRED_TARGET=/usr/sbin/sendmail + +ALIAS_FILE=/etc/aliases +ALIASDB_FILE=${ALIAS_FILE}.db + +TARGET=$(readlink -f $NEWALIASES) + +if [ "$TARGET" != "$REQUIRED_TARGET" ]; then + echo "ALIASES OK - Looks like we're not running postfix (newaliases points to ${TARGET})" + exit +fi + +ALIAS_TS=$(stat --format %Y $ALIAS_FILE) +ALIASDB_TS=$(stat --format %Y $ALIASDB_FILE) + +sec=$((ALIASDB_TS - ALIAS_TS)) + +if [ $sec > 0 ]; then + echo "ALIASES OK - aliases.db is ${sec}s newer than aliases" +else + echo "ALIASES CRITICAL - aliases.db is ${sec}s older than aliases" + exit 2 +fi -- 2.39.5