X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-checks%2Fchecks%2Fdsa-check-running-kernel;h=df783976a29430921f2e6dd350108f3625a3f164;hb=e37bf5d88bb67886f806d05e6a4b76537b8b24a9;hp=d1d65ae5faa4d1af69413bb84582b18d023a561c;hpb=7e80ceb49b6f69960587a81339e94748a99c36b3;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-running-kernel b/dsa-nagios-checks/checks/dsa-check-running-kernel index d1d65ae..df78397 100755 --- a/dsa-nagios-checks/checks/dsa-check-running-kernel +++ b/dsa-nagios-checks/checks/dsa-check-running-kernel @@ -3,7 +3,7 @@ # Check if the running kernel has the same version string as the on-disk # kernel image. -# Copyright 2008 Peter Palfrader +# Copyright 2008,2009 Peter Palfrader # Copyright 2009 Stephen Gran # # Permission is hereby granted, free of charge, to any person obtaining @@ -61,6 +61,11 @@ get_avail() { metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+-[A-Za-z0-9\.]+-(.*)/2.\1-\2/') fi + # Attempt to track back to a metapackage failed. bail + if [ "$metavers" = "$kervers" ]; then + return 2 + fi + # We're just going to give up if we can't find a matching metapackage # I tried being strict once, and it just caused a lot of headaches. We'll see how # being lax does for us @@ -76,8 +81,14 @@ get_avail() { return 2 fi + if [ "$metaavailvers" != "$metainstavers" ] ; then + echo "${prefix}-image-${metavers} $metaavailvers available but $metainstavers installed" + return 1 + fi + local imagename=0 - for vers in $(apt-cache --no-all-versions depends ${prefix}-image-${metavers} | grep Depends | awk '{print $2}' | sort -u); do + # --no-all-versions show shows only the candidate + for vers in $(apt-cache --no-all-versions show ${prefix}-image-${metavers} | egrep '^Depends:' | awk '{print $2}' | sort -u); do if dpkg --compare-versions $vers gt $imagename; then imagename=$vers fi @@ -88,6 +99,9 @@ get_avail() { fi if [ "$imagename" != "${prefix}-image-${kervers}" ]; then + if dpkg --compare-versions "$imagename" lt "${prefix}-image-${kervers}"; then + return 2 + fi echo "$imagename" != "${prefix}-image-${kervers}" return 1 fi @@ -103,7 +117,6 @@ get_avail() { return 1 } - get_image() { local image GZHDR1 GZHDR2 off