#!/bin/sh # # Plugin to monitor inode-usage. # # Parameters understood: # # config (required) # autoconf (optional - used by munin-config) # # $Log$ # Revision 1.4.2.4 2005/02/03 13:28:50 lupe # correct field.info # # Revision 1.4.2.3 2005/01/28 16:24:22 lupe # Minor corrections # # Revision 1.4.2.2 2005/01/28 14:51:22 lupe # Add graph_info and some filed.info # # Revision 1.4 2004/05/20 19:02:36 jimmyo # Set categories on a bunch of plugins # # Revision 1.3 2004/05/18 22:04:30 jimmyo # Use "sed 1d" instead of "tail +2" in df plugins (patch by Olivier Delhomme). # # Revision 1.2.2.1 2005/01/25 10:32:40 lupe # Add support for FreeBSD 4.x ramdisks # # Revision 1.2 2004/02/01 19:00:29 lupe # Ignore devfs,fdescfs,linprocfs in addition to procfs,nfs. # # 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 (optional - used by munin-config and installation # scripts): # #%# family=auto #%# capabilities=autoconf MAXLABEL=20 print_values() { mfs=0 /bin/df -P -i -t noprocfs,devfs,fdescfs,linprocfs,nfs | tail +2 | grep -v "//" | while read i; do case $i in mfs:*) name=mfs$mfs; mfs=`expr $mfs + 1`;; *) name=`echo $i | awk '{ gsub("[^a-zA-Z0-9_]", "_", $1); print $1 }'` ;; esac echo -n "$name.value " echo $i | awk '{ print $8 }' | cut -f1 -d% done } if [ "$1" = "autoconf" ]; then if [ "`print_values`" = "" ] ; then echo no else echo yes fi exit 0 fi if [ "$1" = "config" ]; then echo 'graph_title Inode usage (in %)' echo 'graph_args --upper-limit 100 -l 0' echo 'graph_vlabel %' echo 'graph_category disk' echo 'graph_info This graph shows the inode usage for the partitions of types that use inodes.' /bin/df -P -i -t noprocfs,devfs,fdescfs,linprocfs,nfs | tail +2 | grep -v "//" | awk " BEGIN { mfs = 0 } { name = \$1 dir = \$9 if (\$1 ~ /^mfs:/) { name = \"mfs\" mfs mfs = mfs + 1 } else { gsub(/[^a-zA-Z0-9_]/, \"_\", name) } if (length(dir) <= $MAXLABEL) print name \".label \" dir else printf (\"%s.label ...%s\n\", name, substr (dir, length(dir)-$MAXLABEL+4, $MAXLABEL-3)) print name \".info \" dir \" -> \" \$1 print name \".warning 92\" print name \".critical 98\" }" exit 0 fi print_values