#!/bin/sh
# 
# Plugin to monitor the number of open files in the system.
#
# Parameters:
# 	
# 	config   (required)
# 	autoconf (optional - used by munin-config)
#
# $Log$
# Revision 1.2.2.1  2005/01/28 14:51:22  lupe
# Add graph_info and some filed.info
#
# Revision 1.3  2005/01/28 14:47:31  lupe
# Add graph_info and some filed.info
#
# Revision 1.2  2004/05/20 19:02:36  jimmyo
# Set categories on a bunch of plugins
#
# Revision 1.1  2004/01/02 18:50:00  jimmyo
# Renamed occurrances of lrrd -> munin
#
# Revision 1.1.1.1  2004/01/02 15:18:07  jimmyo
# Import of LRRD CVS tree after renaming to Munin
#
# Revision 1.3  2003/11/07 17:43:16  jimmyo
# Cleanups and log entries
#
#
#
# Magic markers (Used by munin-config and some installation scripts.
# Optional):
#
#%# family=auto
#%# capabilities=autoconf



if [ "$1" = "autoconf" ]; then
    if [ -x /sbin/sysctl ]; then
        /sbin/sysctl kern.nfiles > /dev/null
    	if [ $? = "0" ]; then
	    	echo yes
    		exit 0
    	else
		    echo no
		    exit 1
	    fi
    else
        echo no
        exit 1
    fi
fi

if [ "$1" = "config" ]; then

	echo 'graph_title File table usage'
	echo 'graph_args --base 1000 -l 0'
	echo 'graph_vlabel number of open files'
	echo 'graph_category system'
	echo 'graph_info This graph monitors the Linux open files table.'
	echo 'used.label open files'
	echo 'used.info The number of currently open files.'
	echo 'max.label max open files'
	echo 'max.info The maximum supported number of open files.'
	/sbin/sysctl -n kern.maxfiles | awk  '{printf "used.warning %d\nused.critical %d\n",$1*0.92,$1*0.98}'
	exit 0
fi

#awk '{print "used.value " $1-$2 "\nmax.value " $3}' < /proc/sys/fs/file-nr
echo -n 'max.value '
/sbin/sysctl -n kern.maxfiles
echo -n 'used.value '
/sbin/sysctl -n kern.nfiles
