#!/bin/sh # # Script to monitor disk usage. # # Parameters understood: # # config (required) # autoconf (optional - used by munin-config) # # $Log$ # Revision 1.4.2.4 2005/01/28 16:24:23 lupe # Minor corrections # # Revision 1.4.2.3 2005/01/28 14:52:23 lupe # Delete a merge marker # # 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.2.2.1 2005/01/25 10:32:40 lupe # Add support for FreeBSD 4.x ramdisks # # Revision 1.2.2.1 2005/01/25 10:32:40 lupe # Add support for FreeBSD 4.x ramdisks # # 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 if [ "$1" = "autoconf" ]; then echo yes exit 0 fi if [ "$1" = "config" ]; then echo 'graph_title Filesystem usage (in %)' echo 'graph_args --upper-limit 100 -l 0' echo 'graph_vlabel %' echo 'graph_category disk' echo 'graph_info This graph shows disk usage on the machine.' mfs=0 /bin/df -P -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.label " echo $i | awk "{ dir=\$6; if (length(dir) <= $MAXLABEL) print dir else printf (\"...%s\n\", substr (dir, length(dir)-$MAXLABEL+4, $MAXLABEL-3)) print \"$name.info \" \$6 \" -> \" \$1; }" echo "$name.warning 92" echo "$name.critical 98" done exit 0 fi mfs=0 /bin/df -P -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 $5 }' | cut -f1 -d% done