#!/bin/sh # Author: Jens Giessmann jg@handcode.de # Version: 0.1.2 # this plugin provides info about running and (last) installed kernel versions K_NAME='' K_RUN='' K_INST='' # -------------------------------------------------------------------- # FreeBSD # -------------------------------------------------------------------- if [ "$(uname -s)" = 'FreeBSD' ]; then K_NAME='FreeBSD' K_RUN=$(sysctl -n kern.osrelease) K_INST=$(freebsd-version -k) fi # -------------------------------------------------------------------- # Debian/Ubuntu/Proxmox # -------------------------------------------------------------------- # different kernel versions may be installed, so we need to compare # all available versions to find the latest dpkg_get_latest_installed () { # Proxmox PVE kernel package uses different naming convention. thanks @mdklapwijk # default debian kernel package prefix case "$(uname -r)" in *-pve) image_prefix='pve-kernel'; image_postfix='\-pve' ;; *) image_prefix='linux-image'; image_postfix='';; esac # get the version of the currently running image as start latest=$(dpkg -l | grep ${image_prefix}-$(uname -r) | awk '{print $3}') for i in $(dpkg -l | grep ${image_prefix}-$(uname -r | cut -d '.' -f1) | grep '${image_postfix}' | awk '{print $3}') do dpkg --compare-versions "${i}" gt "${latest}" && latest="${i}" done echo "${latest}" } if [ "$(uname -o)" = 'GNU/Linux' ]; then K_NAME='Linux' K_RUN=$(sysctl -n kernel.version | awk '{print $4}') K_INST=$(dpkg_get_latest_installed) fi # -------------------------------------------------------------------- # write plugin output if available # -------------------------------------------------------------------- if [ -n "${K_RUN}" ]; then echo '<<>>' echo "${K_NAME} ${K_RUN} ${K_INST}" fi