[Nagiosplug-checkins] CVS: nagiosplug/plugins check_disk.c,1.5,1.6
Karl DeBisschop
kdebisschop at users.sourceforge.net
Sun Jan 12 20:51:03 CET 2003
Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv20087/plugins
Modified Files:
check_disk.c
Log Message:
add options for excluding devices and for skipping OK devices in summary
Index: check_disk.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_disk.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** check_disk.c 18 Nov 2002 07:23:15 -0000 1.5
--- check_disk.c 13 Jan 2003 04:50:03 -0000 1.6
***************
*** 37,41 ****
#include <stdarg.h>
- #define PROGNAME "check_disk"
#define REVISION "$Revision$"
#define COPYRIGHT "2000-2002"
--- 37,40 ----
***************
*** 47,50 ****
--- 46,51 ----
void print_usage (void);
+ const char *PROGNAME = "check_disk";
+
int w_df = -1;
int c_df = -1;
***************
*** 52,62 ****
float c_dfp = -1.0;
char *path = "";
! int verbose = FALSE;
int display_mntp = FALSE;
int
main (int argc, char **argv)
{
- int len;
int usp = -1;
int total_disk = -1;
--- 53,64 ----
float c_dfp = -1.0;
char *path = "";
! char *exclude_device = "";
! int verbose = 0;
int display_mntp = FALSE;
+
int
main (int argc, char **argv)
{
int usp = -1;
int total_disk = -1;
***************
*** 64,73 ****
int free_disk = -1;
int result = STATE_UNKNOWN;
! int temp_result = STATE_UNKNOWN;
! char *command_line = NULL;
! char input_buffer[MAX_INPUT_BUFFER] = "";
! char file_system[MAX_INPUT_BUFFER] = "";
! char mntp[MAX_INPUT_BUFFER] = "";
! char outbuf[MAX_INPUT_BUFFER] = "";
char *output = "";
--- 66,74 ----
int free_disk = -1;
int result = STATE_UNKNOWN;
! int disk_result = STATE_UNKNOWN;
! char *command_line = "";
! char input_buffer[MAX_INPUT_BUFFER];
! char file_system[MAX_INPUT_BUFFER];
! char mntp[MAX_INPUT_BUFFER];
char *output = "";
***************
*** 77,81 ****
asprintf (&command_line, "%s %s", DF_COMMAND, path);
! if (verbose)
printf ("%s ==> ", command_line);
--- 78,82 ----
asprintf (&command_line, "%s %s", DF_COMMAND, path);
! if (verbose>0)
printf ("%s ==> ", command_line);
***************
*** 96,108 ****
continue;
! if (sscanf
! (input_buffer, "%s %d %d %d %d%% %s", file_system, &total_disk,
! &used_disk, &free_disk, &usp, &mntp) == 6
! || sscanf (input_buffer, "%s %*s %d %d %d %d%% %s", file_system,
! &total_disk, &used_disk, &free_disk, &usp, &mntp) == 6) {
! asprintf (&output, "%s [%d kB (%d%%) free on %s]", output, free_disk,
! 100 - usp, display_mntp ? mntp : file_system);
! result = max_state (result, check_disk (usp, free_disk));
}
else {
printf ("Unable to read output:\n%s\n%s\n", command_line, input_buffer);
--- 97,124 ----
continue;
! if (sscanf (input_buffer, "%s %d %d %d %d%% %s", file_system,
! &total_disk, &used_disk, &free_disk, &usp, mntp) == 6 ||
! sscanf (input_buffer, "%s %*s %d %d %d %d%% %s", file_system,
! &total_disk, &used_disk, &free_disk, &usp, mntp) == 6) {
!
! if (strcmp(exclude_device,file_system) == 0 ||
! strcmp(exclude_device,mntp) == 0) {
! if (verbose>0)
! printf ("ignoring %s.", file_system);
! continue;
! }
!
! disk_result = check_disk (usp, free_disk);
!
! if (strcmp (file_system, "none") == 0)
! strncpy (file_system, mntp, MAX_INPUT_BUFFER-1);
!
! if (disk_result!=STATE_OK || verbose>=0)
! asprintf (&output, "%s [%d kB (%d%%) free on %s]", output,
! free_disk, 100 - usp, display_mntp ? mntp : file_system);
!
! result = max_state (result, disk_result);
}
+
else {
printf ("Unable to read output:\n%s\n%s\n", command_line, input_buffer);
***************
*** 113,131 ****
/* If we get anything on stderr, at least set warning */
! while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr))
! /*result = max (result, STATE_WARNING); */
! if( !( result == STATE_CRITICAL) ) {
result = STATE_WARNING;
}
/* close stderr */
! (void) fclose (child_stderr);
/* close the pipe */
! if (spclose (child_process))
! /*result = max (result, STATE_WARNING); */
! if( !( result == STATE_CRITICAL) ) {
result = STATE_WARNING;
! }
if (usp < 0)
printf ("Disk \"%s\" not mounted or nonexistant\n", path);
--- 129,146 ----
/* If we get anything on stderr, at least set warning */
! while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
! if (result != STATE_CRITICAL) {
result = STATE_WARNING;
}
+ }
/* close stderr */
! if (child_stderr)
! (void) fclose (child_stderr);
/* close the pipe */
! if (spclose(child_process)!=0 && result!=STATE_CRITICAL)
result = STATE_WARNING;
!
if (usp < 0)
printf ("Disk \"%s\" not mounted or nonexistant\n", path);
***************
*** 133,137 ****
printf ("Unable to read output\n%s\n%s\n", command_line, input_buffer);
else
! printf ("DISK %s -%s\n", state_text (result), output);
return result;
--- 148,152 ----
printf ("Unable to read output\n%s\n%s\n", command_line, input_buffer);
else
! printf ("DISK %s%s\n", state_text (result), output);
return result;
***************
*** 156,159 ****
--- 171,177 ----
{"help", no_argument, 0, 'h'},
{"mountpoint", no_argument, 0, 'm'},
+ {"exclude_device", required_argument, 0, 'x'},
+ {"quiet", no_argument, 0, 'q'},
+
{0, 0, 0, 0}
};
***************
*** 170,176 ****
#ifdef HAVE_GETOPT_H
c =
! getopt_long (argc, argv, "Vhvt:c:w:p:m", long_options, &option_index);
#else
! c = getopt (argc, argv, "Vhvt:c:w:p:m");
#endif
--- 188,194 ----
#ifdef HAVE_GETOPT_H
c =
! getopt_long (argc, argv, "+?Vqhvt:c:w:p:x:m", long_options, &option_index);
#else
! c = getopt (argc, argv, "+?Vqhvt:c:w:p:x:m");
#endif
***************
*** 223,231 ****
break;
case 'v': /* verbose */
! verbose = TRUE;
break;
case 'm': /* display mountpoint */
display_mntp = TRUE;
break;
case 'V': /* version */
print_revision (PROGNAME, REVISION);
--- 241,255 ----
break;
case 'v': /* verbose */
! verbose++;
! break;
! case 'q': /* verbose */
! verbose--;
break;
case 'm': /* display mountpoint */
display_mntp = TRUE;
break;
+ case 'x': /* exclude path or partition */
+ exclude_device = optarg;
+ break;
case 'V': /* version */
print_revision (PROGNAME, REVISION);
***************
*** 312,324 ****
" Exit with WARNING status if less than INTEGER kilobytes of disk are free\n"
" -w, --warning=PERCENT%%\n"
! " Exit with WARNING status if more 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 more 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"
" -v, --verbose\n"
" Show details for command-line debugging (do not use with nagios server)\n"
--- 336,352 ----
" 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"
***************
*** 333,337 ****
{
printf
! ("Usage: %s -w limit -c limit [-p path] [-t timeout] [-m] [--verbose]\n"
" %s (-h|--help)\n"
" %s (-V|--version)\n", PROGNAME, PROGNAME, PROGNAME);
--- 361,365 ----
{
printf
! ("Usage: %s -w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e] [--verbose]\n"
" %s (-h|--help)\n"
" %s (-V|--version)\n", PROGNAME, PROGNAME, PROGNAME);
More information about the Commits
mailing list