From 58d25fcc2c2b62a4dea2ad3feef771f704c1177f Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Wed, 20 Dec 2006 06:41:29 +0000
Subject: [PATCH] Added check_hostextinfo.

---
 Makefile          |  2 +-
 check_hostextinfo | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100755 check_hostextinfo

diff --git a/Makefile b/Makefile
index 5475d93..1f81cb0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 DESTDIR = /usr/local/nagios/libexec/
 SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \
 	check_link_status check_true check_lysrdiff check_syslog \
-	check_ping check_enodia_monitored
+	check_ping check_enodia_monitored check_hostextinfo
 
 all:;
 
diff --git a/check_hostextinfo b/check_hostextinfo
new file mode 100755
index 0000000..08e9426
--- /dev/null
+++ b/check_hostextinfo
@@ -0,0 +1,36 @@
+#!/bin/sh
+HOSTEXT=`tempfile`
+HOSTS=`tempfile`
+DIFF=`tempfile`
+MISSING=`tempfile`
+EXTRA=`tempfile`
+
+awk '$1 != "#" { print $1 }' /etc/nagios/hostextinfo.txt \
+| sort > $HOSTEXT
+
+sed -n 's/^[ 	]*host_name[ 	][ 	]*\(.*\)$/\1/p' /etc/nagios/hosts.cfg \
+| sort > $HOSTS
+
+diff -U0 $HOSTS $HOSTEXT > $DIFF
+diffrv=$?
+sed -n -e 1,2d -e 's/^-//p' $DIFF > $MISSING
+sed -n -e 1,2d -e 's/^+//p' $DIFF > $EXTRA
+case $diffrv in
+ 0) echo OK
+    rv=0;;
+ 1) echo -n CRITICAL - /etc/nagios/hostextinfo.txt: 
+    if [ `wc -l < $MISSING` -gt 0 ]
+    then
+	echo -n ' 'Add `cat $MISSING`.
+    fi
+    if [ `wc -l < $EXTRA` -gt 0 ]
+    then
+	echo -n ' 'Remove `cat $EXTRA`.
+    fi
+    echo
+    rv=2;;
+ *) echo CRITICAL - diff failed
+    rv=2;;
+esac
+rm $HOSTEXT $HOSTS $DIFF
+exit $rv
-- 
GitLab