MyMonPlugins/check_zypper.sh
2016-11-24 20:49:33 +01:00

76 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
#############################################################################
# (c) 2011 Sven Velt <sven@velt.de #
# and team(ix) GmbH, Nuernberg, Germany #
# (c) 2016 by Sven Velt, Germany #
# sven-mymonplugins@velt.biz #
# #
# This file is part of "velt.biz - My Monitoring Plugins" #
# a fork of "team(ix) Monitoring Plugins" in 2015 #
# URL: https://gogs.velt.biz/velt.biz/MyMonPlugins/ #
# #
# All rights reserved. #
# Redistribution and use in source and binary forms, with or without #
# modification, are permitted provided that the following conditions #
# are met: #
# 1. Redistributions of source code must retain the above copyright #
# notice, this list of conditions and the following disclaimer. #
# 2. Redistributions in binary form must reproduce the above copyright #
# notice, this list of conditions and the following disclaimer in the #
# documentation and/or other materials provided with the distribution. #
# 3. The name of the copyright owner may not be used to endorse or #
# promote products derived from this software without specific prior #
# written permission. #
# #
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR #
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED #
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE #
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, #
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES #
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR #
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) #
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, #
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING #
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE #
# POSSIBILITY OF SUCH DAMAGE. #
#############################################################################
# Works on:
# - SLES 11
# Does NOT work on:
# -
# From "/etc/sudoers" / "visudo":
# nagios ALL = NOPASSWD: /usr/bin/zypper ref,/usr/bin/zypper -q pchk
#
if [ ! -x /usr/bin/zypper ] ; then
echo 'Zypper CRITICAL - Zypper not found!'
exit 2
fi
# Refresh repositories
sudo /usr/bin/zypper ref >/dev/null 2>&1
zypper_out=$(sudo LANG=C /usr/bin/zypper -q pchk)
if ( echo "${zypper_out}" | grep -q "needed" ) ; then
output=$(echo ${zypper_out} | cut -d "." -f 7)
patches=$(echo ${output} | cut -d " " -f1)
if [ ${patches} -gt 0 ] ; then
secpatches=$(echo ${output} | cut -d "(" -f2|cut -d " " -f1)
if [ -n "${secpatches}" ]; then
if [ ${secpatches} -gt 0 ] ; then
echo "Zypper CRITICAL - ${patches}"
exit 2
fi
echo "Zypper WARNING - ${output}"
exit 1
fi
fi
fi
echo "Zypper OK - No updates available"
exit 0