[project @ peter@palfrader.org-20090327104803-3wsxkk7tzeme11hz]
[mirror/dsa-nagios.git] / dsa-nagios-nrpe-config / dsa-check-running-kernel
index 7d2cb3a..818288f 100755 (executable)
@@ -59,27 +59,39 @@ 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="/boot/vmlinuz-`uname -r`"
+searched=""
+for on_disk in \
+       "/boot/vmlinuz-`uname -r`"\
+       "/boot/vmlinux-`uname -r`"; do
 
-if ! [ -e "$on_disk" ] ; then
-       echo "WARNING: $on_disk does not exist - I have no idea which kernel I am running"
-       exit $WARN
-fi
+       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
 
-on_disk_version="`get_image $on_disk | strings | grep 'Linux version' | head -n1`"
-if [ -z "$on_disk_version" ] ; then
-       echo "UNKNOWN: Failed to get a version string from image $on_disk"
-       exit $UNKNOWN
+               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"