#!/bin/ksh # # Author: Todd Barbera # Date: 10/26/05 # Purpose: Report back to nagios file system usage # . /usr/local/nagios/libexec/utils.sh print_usage() { echo "Usage: check_fs_space -w warning% -c critical%" echo "Usage: check_fs_space -h" echo "" } print_help() { echo "Plugin to check local file system usage" echo "" echo print_usage } # Make sure the correct number of command line # arguments have been supplied if [ $# -lt 1 ]; then print_usage exit $STATE_UNKNOWN fi while test -n "$1"; do case "$1" in -h) print_help exit $STATE_OK ;; -w) warnlev=$2 shift ;; -c) critlev=$2 shift ;; *) echo "Unknown argument: $1" print_usage exit $STATE_UNKNOWN ;; esac shift done # Check local file systems and compare against warn/critical levels warnlev=`echo $warnlev|sed -e 's/\%//'` critlev=`echo $critlev|sed -e 's/\%//'` warnflag=0 critflag=0 df -kl |grep -v Filesystem|while read line>/dev/null do set -f $line fileper=`echo $5` fileper=`echo $fileper|sed -e 's/\%//'` if [ $fileper -ge $critlev ]; then errmsg=`echo "$errmsg CRITICAL: $6 is at $5."` critflag=1 elif [ $fileper -ge $warnlev ]; then errmsg=`echo "$errmsg WARNING: $6 is at $5."` warnflag=1 fi done if [ $critflag = 1 ]; then echo $errmsg exit $STATE_CRITICAL elif [ $warnflag = 1 ]; then echo $errmsg exit $STATE_WARNING else echo "File system utilization is OK" exit $STATE_OK fi