[packages/nagios-plugin-check_vserver_count] v0.2: improve logic to detect permission errors

glen glen at pld-linux.org
Wed Oct 24 08:29:11 CEST 2012


commit bc8e3a73697d0ab5eced59b944ef5cd70686d8b3
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Wed Oct 24 09:28:56 2012 +0300

    v0.2: improve logic to detect permission errors

 check_vserver_count.sh                 | 35 +++++++++++++++++++++++++++-------
 nagios-plugin-check_vserver_count.spec |  2 +-
 2 files changed, 29 insertions(+), 8 deletions(-)
---
diff --git a/nagios-plugin-check_vserver_count.spec b/nagios-plugin-check_vserver_count.spec
index b4f71a6..3ec4844 100644
--- a/nagios-plugin-check_vserver_count.spec
+++ b/nagios-plugin-check_vserver_count.spec
@@ -2,7 +2,7 @@
 %define		plugin	check_vserver_count
 Summary:	Nagios plugin to check vserver count
 Name:		nagios-plugin-%{plugin}
-Version:	0.1
+Version:	0.2
 Release:	1
 License:	GPL v2
 Group:		Networking
diff --git a/check_vserver_count.sh b/check_vserver_count.sh
index 33d02d4..7db7f68 100755
--- a/check_vserver_count.sh
+++ b/check_vserver_count.sh
@@ -10,13 +10,34 @@ if [ ! -e "$UTIL_VSERVER_VARS" ] ; then
 fi
 . "$UTIL_VSERVER_VARS"
 
-shouldrun=$(grep . $__CONFDIR/*/apps/init/mark | wc -l)
+# check files so that we are able to understand permission errors
+errors=""
+shouldrun=0
+for markfile in $(ls -1 $__CONFDIR/*/apps/init/mark 2>/dev/null); do
+	vs=${markfile%/apps/init/mark}
+	vs=${vs#$__CONFDIR/}
+	marked=$(grep . $markfile)
+	if [ $? != 0 -a $? != 1 ]; then
+		errors="$errors $vs"
+	else
+		shouldrun=$((shouldrun + 1))
+	fi
+	marks="$marks $markfile"
+done
+errors=${errors# }
+
 running=$(awk '/Active/{ print $2 }' /proc/virtual/status)
 
-if [ $shouldrun = $running ]; then
-	echo "OK: running $running out of $shouldrun vservers"
-	exit 0
-else
-	echo "CRITICAL: running $running out of $shouldrun vservers"
-	exit 2
+rc=0
+status=OK
+
+if [ $running -lt $shouldrun ]; then
+	rc=2
+	status="CRITICAL"
+elif [ $running != $shouldrun ]; then
+	rc=1
+	status="WARNING"
 fi
+
+echo "$status: running $running out of $shouldrun vservers.${errors:+ (Error checking vservers: $errors)}"
+exit $rc
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/nagios-plugin-check_vserver_count.git/commitdiff/bc8e3a73697d0ab5eced59b944ef5cd70686d8b3



More information about the pld-cvs-commit mailing list