summaryrefslogtreecommitdiff
path: root/nagios-check-running-kernel
diff options
context:
space:
mode:
authorPeter Palfrader <peter@palfrader.org>2014-09-03 11:37:35 +0200
committerPeter Palfrader <peter@palfrader.org>2014-09-03 11:37:35 +0200
commit8e233f74d3e218de01003a88a4e34d681001f712 (patch)
tree954ee162cfe99eadfeee565dbe6a00abf034857c /nagios-check-running-kernel
parent82f0e5970523d4d35e0d4b5bcc016d835d8a6ef1 (diff)
Move files around
Diffstat (limited to 'nagios-check-running-kernel')
-rwxr-xr-xnagios-check-running-kernel107
1 files changed, 0 insertions, 107 deletions
diff --git a/nagios-check-running-kernel b/nagios-check-running-kernel
deleted file mode 100755
index 818288f..0000000
--- a/nagios-check-running-kernel
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-
-# Check if the running kernel has the same version string as the on-disk
-# kernel image.
-
-# Copyright 2008 Peter Palfrader
-#
-# 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.
-
-OK=0;
-WARNING=1;
-CRITICAL=2;
-UNKNOWN=3;
-
-get_offset() {
- local file needle
-
- file="$1"
- needle="$2"
- perl -e '
- undef $/;
- $i = index(<>, "'"$needle"'");
- if ($i < 0) {
- exit 1;
- };
- print $i,"\n"' < "$file"
-}
-
-get_image() {
- local image GZHDR1 GZHDR2 off
-
- image="$1"
-
- GZHDR1="\x1f\x8b\x08\x00"
- GZHDR2="\x1f\x8b\x08\x08"
-
- off=`get_offset "$image" $GZHDR1`
- [ "$?" != "0" ] && off="-1"
- if [ "$off" -eq "-1" ]; then
- off=`get_offset "$image" $GZHDR2`
- [ "$?" != "0" ] && off="-1"
- fi
- if [ "$off" -eq "0" ]; then
- zcat < "$image"
- return
- elif [ "$off" -ne "-1" ]; then
- (dd ibs="$off" skip=1 count=0 && dd bs=512k) < "$image" 2>/dev/null | zcat 2>/dev/null
- return
- fi
-
- echo "ERROR: Unable to extract kernel image." 2>&1
- exit 1
-}
-
-searched=""
-for on_disk in \
- "/boot/vmlinuz-`uname -r`"\
- "/boot/vmlinux-`uname -r`"; do
-
- if [ -e "$on_disk" ]; then
- on_disk_version="`get_image "$on_disk" | strings | grep 'Linux version' | head -n1`"
- [ -z "$on_disk_version" ] || break
- on_disk_version="`cat "$on_disk" | strings | grep 'Linux version' | head -n1`"
- [ -z "$on_disk_version" ] || break
-
- echo "UNKNOWN: Failed to get a version string from image $on_disk"
- exit $UNKNOWN
- fi
- searched="$searched $on_disk"
-done
-
-if ! [ -e "$on_disk" ]; then
- echo "WARNING: Did not find a kernel image (checked$searched) - I have no idea which kernel I am running"
- exit $WARNING
-fi
-
-
-running_version="`cat /proc/version`"
-if [ -z "$running_version" ] ; then
- echo "UNKNOWN: Failed to get a version string from running system"
- exit $UNKNOWN
-fi
-
-if [ "$running_version" != "$on_disk_version" ]; then
- echo "WARNING: Running kernel does not match on-disk kernel image: [$running_version != $on_disk_version]"
- exit $WARNING
-else
- echo "OK: Running kernel matches on disk image: [$running_version]"
- exit $OK
-fi