aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_disk.c130
1 files changed, 62 insertions, 68 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index f72841e8..485ae822 100644
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
@@ -1,35 +1,58 @@
/******************************************************************************
- *
- * CHECK_DISK.C
- *
- * Program: Disk space plugin for Nagios
- * License: GPL
- * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org)
- * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
- *
- * $Id$
- *
- * Description:
- *
- * This plugin will use the /bin/df command to check the free space on
- * currently mounted filesystems. If the percent used disk space is
- * above <c_dfp>, a STATE_CRITICAL is returned. If the percent used
- * disk space is above <w_dfp>, a STATE_WARNING is returned. If the
- * specified filesystem cannot be read, a STATE_CRITICAL is returned,
- * other errors with reading the output result in a STATE_UNKNOWN
- * error.
- *
- * Notes:
- * - IRIX support added by Charlie Cook 4-16-1999
- * - Modifications by Karl DeBisschop 1999-11-24
- * reformat code to 80 char screen width
- * set STATE_WARNING if stderr is written or spclose status set
- * set default result to STAT_UNKNOWN
- * initailize usp to -1, eliminate 'found' variable
- * accept any filename/filesystem
- * use sscanf, drop while loop
- *
- *****************************************************************************/
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*
+*****************************************************************************/
+
+const char *progname = "check_disk";
+const char *revision = "$Revision$";
+const char *copyright = "1999-2003";
+const char *authors = "Nagios Plugin Development Team";
+const char *email = "nagiosplug-devel@lists.sourceforge.net";
+
+const char *summary = "\
+This plugin checks the amount of used disk space on a mounted file system\n\
+and generates an alert if free space is less than one of the threshold values.";
+
+const char *option_summary = "\
+-w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e]\n\
+ [-v] [-q]";
+
+const char *options = "\
+ -w, --warning=INTEGER\n\
+ Exit with WARNING status if less than INTEGER kilobytes of disk are free\n\
+ -w, --warning=PERCENT%%\n\
+ Exit with WARNING status if less than PERCENT of disk space is free\n\
+ -c, --critical=INTEGER\n\
+ Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n\
+ -c, --critical=PERCENT%%\n\
+ Exit with CRITCAL status if less than PERCENT of disk space is free\n\
+ -p, --path=PATH, --partition=PARTTION\n\
+ Path or partition (checks all mounted partitions if unspecified)\n\
+ -m, --mountpoint\n\
+ Display the mountpoint instead of the partition\n\
+ -x, --exclude_device=PATH\n\
+ Ignore device (only works if -p unspecified)\n\
+ -e, --errors-only\n\
+ Display only devices/mountpoints with errors\n\
+ -v, --verbose\n\
+ Show details for command-line debugging (do not use with nagios server)\n\
+ -h, --help\n\
+ Print detailed help screen\n\
+ -V, --version\n\
+ Print version information\n";
#include "common.h"
#include "popen.h"
@@ -44,17 +67,12 @@
# include <inttypes.h>
#endif
-#define REVISION "$Revision$"
-#define COPYRIGHT "2000-2002"
-
int process_arguments (int, char **);
int validate_arguments (void);
int check_disk (int usp, int free_disk);
void print_help (void);
void print_usage (void);
-const char *progname = "check_disk";
-
int w_df = -1;
int c_df = -1;
float w_dfp = -1.0;
@@ -327,7 +345,7 @@ process_arguments (int argc, char **argv)
exclude_device = optarg;
break;
case 'V': /* version */
- print_revision (progname, REVISION);
+ print_revision (progname, revision);
exit (STATE_OK);
case 'h': /* help */
print_help ();
@@ -398,36 +416,12 @@ check_disk (usp, free_disk)
void
print_help (void)
{
- print_revision (progname, REVISION);
- printf
- ("Copyright (c) 2000 Ethan Galstad/Karl DeBisschop\n\n"
- "This plugin will check the percent of used disk space on a mounted\n"
- "file system and generate an alert if percentage is above one of the\n"
- "threshold values.\n\n");
+ print_revision (progname, revision);
+ printf ("Copyright (c) %s %s\n\t<%s>\n\n%s\n",
+ copyright, authors, email, summary);
print_usage ();
- printf
- ("\nOptions:\n"
- " -w, --warning=INTEGER\n"
- " Exit with WARNING status if less than INTEGER kilobytes of disk are free\n"
- " -w, --warning=PERCENT%%\n"
- " Exit with WARNING status if less than PERCENT of disk space is free\n"
- " -c, --critical=INTEGER\n"
- " Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n"
- " -c, --critical=PERCENT%%\n"
- " Exit with CRITCAL status if less than PERCENT of disk space is free\n"
- " -p, --path=PATH, --partition=PARTTION\n"
- " Path or partition (checks all mounted partitions if unspecified)\n"
- " -m, --mountpoint\n"
- " Display the mountpoint instead of the partition\n"
- " -x, --exclude_device=PATH\n"
- " Ignore device (only works if -p unspecified)\n"
- " -e, --errors-only\n"
- " Display only devices/mountpoints with errors\n"
- " -v, --verbose\n"
- " Show details for command-line debugging (do not use with nagios server)\n"
- " -h, --help\n"
- " Print detailed help screen\n"
- " -V, --version\n" " Print version information\n\n");
+ printf ("\nOptions:\n");
+ printf (options);
support ();
}
@@ -435,7 +429,7 @@ void
print_usage (void)
{
printf
- ("Usage: %s -w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e] [--verbose]\n"
+ ("Usage: %s %s\n"
" %s (-h|--help)\n"
- " %s (-V|--version)\n", progname, progname, progname);
+ " %s (-V|--version)\n", progname, option_summary, progname, progname);
}