From 58fad23452357dae19db896c06c025592f6d34c9 Mon Sep 17 00:00:00 2001 From: Ethan Galstad Date: Thu, 18 Apr 2002 21:59:26 +0000 Subject: add check_inodes contrib plugin by John Jolet git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@16 f882894a-f735-0410-b71e-b25c423dba1c diff --git a/contrib/check_inodes.pl b/contrib/check_inodes.pl new file mode 100755 index 0000000..5767878 --- /dev/null +++ b/contrib/check_inodes.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl +############################################################################## +# This plugin uses df to gather filesystem statistics and check the percent # +# used of inodes. I've put a switch in here since i've got both aix and # +# linux systems...adjust for your syntax's results. # +# Note: the percentages passed in MUST NOT have % after them # +# No warranty is either implied, nor expressed herein. # +# # +############################################################################## + +$filesystem = $ARGV[0]; +$warnpercent = $ARGV[1]; +$critpercent = $ARGV[2]; + +#------Find out what kind of syntax to expect +$systype=`uname`; +chomp($systype); + +#------Make sure we got called with the right number of arguments +#------you could also put a check in here to make sure critical level is +#------greater than warning...but what the heck. +die "Usage: check_inodes filesystem warnpercent critpercent" unless @ARGV; + +if ($#ARGV < 2) { + die "Usage: check_inodes filesystem warnpercent critpercent"; +}#end if + +#------This gets the data from the df command +$inputline = `df -i $filesystem|grep -v "Filesystem"`; + +#------replaces all spaces with a single :, that way we can use split +$inputline =~ y/ /:/s; + +#------different oses give back different sets of columns from the df -i +#------(at least mine do). This way I can use this plugin on all my hosts +#------if neither of these work, add your own in, or if you've got one that +#------just flat out reports something different...well...perl is your friend. +SWITCH: { + if ($systype eq "Linux") { + ($fs,$inodes,$iused,$ifree,$ipercent,$mntpt) = split(/:/,$inputline); + last SWITCH; + }#end if + if ($systype eq "AIX") { + ($fs,$blks,$free,$percentused,$iused,$ipercent,$mntpt) = split(/:/,$inputline); + last SWITCH; + }#end if +}#end switch + +#------First we check for critical, since that is, by definition and convention +#------going to exceed the warning threshold +$ipercent =~ y/%//ds; + +if ($ipercent > $critpercent) { + print "CRITICAL: $filesystem inode use exceeds critical threshold $critpercent ($ipercent)"; + exit 1; +}# end if + +#------Next we check the warning threshold +if ($ipercent > $warnpercent) { + print "WARNING: $filesystem inode use exceeds warning threshold $warnpercent ($ipercent)"; + exit 2; +}# end if + + +#------thanks to the magic of procedural programming, we figure if we got here, +#------everything MUST be fine. +print "$filesystem inode use within limits ($ipercent)"; +exit 0; + -- cgit v0.10-9-g596f