#!/bin/bash
############################################################
#                                                          #
# Watch network-interfaces with Nagios - The simple script #
#                                                          #
# by Markus Walther - www.markuswalther.org                #
#                                                          #
############################################################
#                                                          #
# Usage:                                                   #
#  1. Copy this script to the nagios plugin-directory      #
#  2. Set the exec-rights (chmod a+x check_network)        #
#  3. If missing, install "mii-tool"                       #
#  4. Comment out "Defaults requiretty" in /etc/sudoers    #
#     and let user nagios execute mii-tool:                #
#      nagios ALL=NOPASSWD:/sbin/mii-tool                  #
#  5. commands.cfg:    $USER1$/check_network $ARG1$        #
#  6. services.cfg:    check_network!eth0                  #
#                                                          #
#  Now it should work fine :)                              #
#                                                          #
############################################################
#
# Read the command-input
karte=$1
#
# Exit-Codes:
# 0 = $STATE_OK
# 1 = $STATE_WARNING
# 2 = $STATE_CRITICAL
# 3 = $STATE_UNKNOWN

if [ `sudo /sbin/mii-tool | grep $karte | grep ok | wc -l 2>&1` == "1" ]
    then
        echo `sudo /sbin/mii-tool $karte ` ##-v | tail -n1`
        # Interface works fine
	karte=AAA
        exit 0
  elif [ `sudo /sbin/mii-tool | grep $karte | grep "10 " | wc -l 2>&1` == "1" ]
    then
        echo `sudo /sbin/mii-tool $karte`
        # Link Slow Warning: Warning if Interface is on 10 MBit/s
	karte=AAA
        exit 1
 elif [ `sudo /sbin/mii-tool | grep $karte | grep "no link" | wc -l 2>&1` == "1" ]
    then
        echo `sudo /sbin/mii-tool $karte`
        # Link Down - Critical
        karte=AAA
        exit 2
  elif [ `sudo /sbin/mii-tool | grep $karte | grep "No such device" | wc -l 2>&1` == "1" ]
    then
        echo `sudo /sbin/mii-tool $karte`
        # Interface not found
	karte=AAA
        exit 3
  elif [ `sudo /sbin/mii-tool $karte 2>&1 | cut -d \  -f 1` == "sudo" ]
    then
        echo "Comment out [defaults requiretty] in /etc/sudoers"
	# Unknown if there is no tty for nagios
	karte=AAA
        exit 3
  else  echo `sudo /sbin/mii-tool $karte 2>&1`
        # Another error?
	karte=AAA
        exit 3
fi
