[Pkg-nagios-changes] [pkg-nagios-plugins-contrib] 01/02: Add update-check_libs-status cronjob script.

Bernd Zeimetz bernd at bzed.de
Mon Dec 1 14:00:06 UTC 2014


This is an automated email from the git hooks/post-receive script.

bzed pushed a commit to branch master
in repository pkg-nagios-plugins-contrib.

commit 1151ce306054acb78b70d160c93732fd35db21f1
Author: Bernd Zeimetz <bernd at bzed.de>
Date:   Mon Dec 1 14:21:49 2014 +0100

    Add update-check_libs-status cronjob script.
---
 check_libs/Makefile                 |  1 +
 check_libs/copyright                | 30 +++++++++++++
 check_libs/update-check_libs-status | 90 +++++++++++++++++++++++++++++++++++++
 3 files changed, 121 insertions(+)

diff --git a/check_libs/Makefile b/check_libs/Makefile
index 22deda6..da38d4b 100644
--- a/check_libs/Makefile
+++ b/check_libs/Makefile
@@ -3,6 +3,7 @@
 INIFILES = check-libs.conf
 PLUGIN = check_libs
 CLEANFILES = $(INIFILES) $(PLUGIN)
+CRONJOBS:= update-check_libs-status
 
 include ../common.mk
 
diff --git a/check_libs/copyright b/check_libs/copyright
index 84fc753..d2777fd 100644
--- a/check_libs/copyright
+++ b/check_libs/copyright
@@ -1,3 +1,6 @@
+
+check_libs:
+
 Copyright (C) 2005, 2006, 2007, 2008, 2012 Peter Palfrader <peter at palfrader.org>
               2012 Uli Martens <uli at youam.net>
 
@@ -20,3 +23,30 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
+
+update-check_libs-status:
+
+Based on update-apt-status
+Copyright 2009 Peter Palfrader
+
+Copyright 2014 conova communications GmbH
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/check_libs/update-check_libs-status b/check_libs/update-check_libs-status
new file mode 100755
index 0000000..78de51b
--- /dev/null
+++ b/check_libs/update-check_libs-status
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# Based on update-apt-status
+# Copyright 2009 Peter Palfrader
+#
+# Copyright 2014 conova communications GmbH
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+UPDATE_RUNS=3
+STATUSDIR=/var/cache/nagios_status
+STATUS=${STATUSDIR}/check_libs
+SLEEP_MAX=$(( 15 * 60 ))
+MAX_AGE=$(( 23 * 60 * 60 ))
+
+# we want to run if any of the following things is true
+#  - we have never run before
+#  - var/lib/dpkg/status has been touched since the last run
+#  - var/cache/apt/pkgcache.bin has been touched since the last run
+#  - our last run ended with 'apt-get update failed'
+#  - our last run has been more than MAX_AGE (23hrs) ago
+run_required() {
+	local run=0
+	local norun=1
+
+	[ -e "$STATUS" ] || return $run
+	[ /var/lib/dpkg/status -nt "$STATUS" ] && return $run
+	[ /var/cache/apt/pkgcache.bin -nt "$STATUS" ] && return $run
+	grep "apt-get update failed" "$STATUS" > /dev/null && return $run
+
+	local last_mod
+	last_mod=`stat -c "%Y" "$STATUS"`
+	now=`date +%s`
+	age=$(( $now - $last_mod ))
+	[ "$age" -gt "$MAX_AGE" ] && return $run
+
+	return $norun
+}
+
+if [ ! -d ${STATUSDIR} ]; then
+    mkdir -p ${STATUSDIR}
+fi
+
+# do stuff only when required, or when asked to
+if [ "${1:-""}" != "-f" ] ; then
+	run_required || exit 0
+fi
+
+# sleep if called non-interactively
+if [ -z "$TERM" -o "$TERM" = "dumb" ]; then
+	sleep $(( $RANDOM % $SLEEP_MAX ))
+fi
+
+# run the apt check itself
+tmp=`tempfile`
+trap "rm -f '$tmp'" exit
+/usr/lib/nagios/plugins/check_libs > "$tmp"
+result="$?"
+case "$result" in
+  0)
+	st="OK"
+	;;
+  1)
+	st="WARNING"
+	;;
+  2)
+	st="CRITICAL"
+	;;
+  *)
+	st="UNKNOWN"
+	;;
+esac
+(echo "$st"; cat "$tmp") > "$STATUS"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-nagios/pkg-nagios-plugins-contrib.git



More information about the Pkg-nagios-changes mailing list