summaryrefslogtreecommitdiffstats
path: root/plugins/check_disk.c
diff options
context:
space:
mode:
authorKarl DeBisschop <kdebisschop@users.sourceforge.net>2003-03-12 07:05:47 +0000
committerKarl DeBisschop <kdebisschop@users.sourceforge.net>2003-03-12 07:05:47 +0000
commit46b0e78076a4c712f9c58b4f7804ba50b5895f46 (patch)
tree2389393a0343c0e0a98f72b046cc8aad7712a02b /plugins/check_disk.c
parent10a9300ed850d077afb82380649a45d663b3be5d (diff)
downloadmonitoring-plugins-46b0e78076a4c712f9c58b4f7804ba50b5895f46.tar.gz
doco standarization
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@409 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/check_disk.c')
-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 @@
1/****************************************************************************** 1/******************************************************************************
2 * 2*
3 * CHECK_DISK.C 3* This program is free software; you can redistribute it and/or modify
4 * 4* it under the terms of the GNU General Public License as published by
5 * Program: Disk space plugin for Nagios 5* the Free Software Foundation; either version 2 of the License, or
6 * License: GPL 6* (at your option) any later version.
7 * Copyright (c) 1999 Ethan Galstad (nagios@nagios.org) 7*
8 * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net) 8* This program is distributed in the hope that it will be useful,
9 * 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * $Id$ 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * 11* GNU General Public License for more details.
12 * Description: 12*
13 * 13* You should have received a copy of the GNU General Public License
14 * This plugin will use the /bin/df command to check the free space on 14* along with this program; if not, write to the Free Software
15 * currently mounted filesystems. If the percent used disk space is 15* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16 * above <c_dfp>, a STATE_CRITICAL is returned. If the percent used 16*
17 * disk space is above <w_dfp>, a STATE_WARNING is returned. If the 17*****************************************************************************/
18 * specified filesystem cannot be read, a STATE_CRITICAL is returned, 18
19 * other errors with reading the output result in a STATE_UNKNOWN 19const char *progname = "check_disk";
20 * error. 20const char *revision = "$Revision$";
21 * 21const char *copyright = "1999-2003";
22 * Notes: 22const char *authors = "Nagios Plugin Development Team";
23 * - IRIX support added by Charlie Cook 4-16-1999 23const char *email = "nagiosplug-devel@lists.sourceforge.net";
24 * - Modifications by Karl DeBisschop 1999-11-24 24
25 * reformat code to 80 char screen width 25const char *summary = "\
26 * set STATE_WARNING if stderr is written or spclose status set 26This plugin checks the amount of used disk space on a mounted file system\n\
27 * set default result to STAT_UNKNOWN 27and generates an alert if free space is less than one of the threshold values.";
28 * initailize usp to -1, eliminate 'found' variable 28
29 * accept any filename/filesystem 29const char *option_summary = "\
30 * use sscanf, drop while loop 30-w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e]\n\
31 * 31 [-v] [-q]";
32 *****************************************************************************/ 32
33const char *options = "\
34 -w, --warning=INTEGER\n\
35 Exit with WARNING status if less than INTEGER kilobytes of disk are free\n\
36 -w, --warning=PERCENT%%\n\
37 Exit with WARNING status if less than PERCENT of disk space is free\n\
38 -c, --critical=INTEGER\n\
39 Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n\
40 -c, --critical=PERCENT%%\n\
41 Exit with CRITCAL status if less than PERCENT of disk space is free\n\
42 -p, --path=PATH, --partition=PARTTION\n\
43 Path or partition (checks all mounted partitions if unspecified)\n\
44 -m, --mountpoint\n\
45 Display the mountpoint instead of the partition\n\
46 -x, --exclude_device=PATH\n\
47 Ignore device (only works if -p unspecified)\n\
48 -e, --errors-only\n\
49 Display only devices/mountpoints with errors\n\
50 -v, --verbose\n\
51 Show details for command-line debugging (do not use with nagios server)\n\
52 -h, --help\n\
53 Print detailed help screen\n\
54 -V, --version\n\
55 Print version information\n";
33 56
34#include "common.h" 57#include "common.h"
35#include "popen.h" 58#include "popen.h"
@@ -44,17 +67,12 @@
44# include <inttypes.h> 67# include <inttypes.h>
45#endif 68#endif
46 69
47#define REVISION "$Revision$"
48#define COPYRIGHT "2000-2002"
49
50int process_arguments (int, char **); 70int process_arguments (int, char **);
51int validate_arguments (void); 71int validate_arguments (void);
52int check_disk (int usp, int free_disk); 72int check_disk (int usp, int free_disk);
53void print_help (void); 73void print_help (void);
54void print_usage (void); 74void print_usage (void);
55 75
56const char *progname = "check_disk";
57
58int w_df = -1; 76int w_df = -1;
59int c_df = -1; 77int c_df = -1;
60float w_dfp = -1.0; 78float w_dfp = -1.0;
@@ -327,7 +345,7 @@ process_arguments (int argc, char **argv)
327 exclude_device = optarg; 345 exclude_device = optarg;
328 break; 346 break;
329 case 'V': /* version */ 347 case 'V': /* version */
330 print_revision (progname, REVISION); 348 print_revision (progname, revision);
331 exit (STATE_OK); 349 exit (STATE_OK);
332 case 'h': /* help */ 350 case 'h': /* help */
333 print_help (); 351 print_help ();
@@ -398,36 +416,12 @@ check_disk (usp, free_disk)
398void 416void
399print_help (void) 417print_help (void)
400{ 418{
401 print_revision (progname, REVISION); 419 print_revision (progname, revision);
402 printf 420 printf ("Copyright (c) %s %s\n\t<%s>\n\n%s\n",
403 ("Copyright (c) 2000 Ethan Galstad/Karl DeBisschop\n\n" 421 copyright, authors, email, summary);
404 "This plugin will check the percent of used disk space on a mounted\n"
405 "file system and generate an alert if percentage is above one of the\n"
406 "threshold values.\n\n");
407 print_usage (); 422 print_usage ();
408 printf 423 printf ("\nOptions:\n");
409 ("\nOptions:\n" 424 printf (options);
410 " -w, --warning=INTEGER\n"
411 " Exit with WARNING status if less than INTEGER kilobytes of disk are free\n"
412 " -w, --warning=PERCENT%%\n"
413 " Exit with WARNING status if less than PERCENT of disk space is free\n"
414 " -c, --critical=INTEGER\n"
415 " Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n"
416 " -c, --critical=PERCENT%%\n"
417 " Exit with CRITCAL status if less than PERCENT of disk space is free\n"
418 " -p, --path=PATH, --partition=PARTTION\n"
419 " Path or partition (checks all mounted partitions if unspecified)\n"
420 " -m, --mountpoint\n"
421 " Display the mountpoint instead of the partition\n"
422 " -x, --exclude_device=PATH\n"
423 " Ignore device (only works if -p unspecified)\n"
424 " -e, --errors-only\n"
425 " Display only devices/mountpoints with errors\n"
426 " -v, --verbose\n"
427 " Show details for command-line debugging (do not use with nagios server)\n"
428 " -h, --help\n"
429 " Print detailed help screen\n"
430 " -V, --version\n" " Print version information\n\n");
431 support (); 425 support ();
432} 426}
433 427
@@ -435,7 +429,7 @@ void
435print_usage (void) 429print_usage (void)
436{ 430{
437 printf 431 printf
438 ("Usage: %s -w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e] [--verbose]\n" 432 ("Usage: %s %s\n"
439 " %s (-h|--help)\n" 433 " %s (-h|--help)\n"
440 " %s (-V|--version)\n", progname, progname, progname); 434 " %s (-V|--version)\n", progname, option_summary, progname, progname);
441} 435}