From 182ac3aa0af27446dd2947988d15692bf2b59311 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Mon, 5 May 2008 17:48:54 +0000 Subject: [PATCH] [project @ peter@palfrader.org-20080505174854-2hvpb2xwgqerjb5d] Try harder to find version string. --- dsa-nagios-nrpe-config/debian/changelog | 6 +++ .../dsa-check-running-kernel | 37 +++++++++++-------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/dsa-nagios-nrpe-config/debian/changelog b/dsa-nagios-nrpe-config/debian/changelog index fe8b291..81bedb9 100644 --- a/dsa-nagios-nrpe-config/debian/changelog +++ b/dsa-nagios-nrpe-config/debian/changelog @@ -1,3 +1,9 @@ +dsa-nagios-nrpe-config (38) unstable; urgency=low + + * Try harder to find version string. + + -- Peter Palfrader Mon, 5 May 2008 17:48:42 +0000 + dsa-nagios-nrpe-config (37) unstable; urgency=low * dsa-check-running-kernel: also check /boot/vmlinux-`uname -r` diff --git a/dsa-nagios-nrpe-config/dsa-check-running-kernel b/dsa-nagios-nrpe-config/dsa-check-running-kernel index 6ec28c9..818288f 100755 --- a/dsa-nagios-nrpe-config/dsa-check-running-kernel +++ b/dsa-nagios-nrpe-config/dsa-check-running-kernel @@ -59,31 +59,38 @@ get_image() { 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 } -on_disk_compressed="/boot/vmlinuz-`uname -r`" -on_disk_uncompressed="/boot/vmlinux-`uname -r`" - -if [ -e "$on_disk_compressed" ]; then - on_disk="$on_disk_compressed" - on_disk_version="`get_image "$on_disk" | strings | grep 'Linux version' | head -n1`" -elif [ -e "$on_disk_uncompressed" ]; then - on_disk="$on_disk_uncompressed" - on_disk_version="`cat "$on_disk" | strings | grep 'Linux version' | head -n1`" -else - echo "WARNING: Neither $on_disk_uncompressed nor $on_disk_compressed do exist - I have no idea which kernel I am running" + +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 -if [ -z "$on_disk_version" ] ; then - echo "UNKNOWN: Failed to get a version string from image $on_disk" - exit $UNKNOWN -fi running_version="`cat /proc/version`" if [ -z "$running_version" ] ; then -- 2.20.1