[Nagiosplug-checkins] CVS: nagiosplug/plugins check_procs.c,1.16,1.17

Karl DeBisschop kdebisschop at users.sourceforge.net
Thu Aug 7 05:37:06 CEST 2003


Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv1028

Modified Files:
	check_procs.c 
Log Message:
markup for translation

Index: check_procs.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_procs.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** check_procs.c	3 Jul 2003 16:49:14 -0000	1.16
--- check_procs.c	7 Aug 2003 12:36:45 -0000	1.17
***************
*** 1,113 ****
  /******************************************************************************
- *
- * CHECK_PROCS.C
- *
- * Program: Process plugin for Nagios
- * License: GPL
- * Copyright (c) 1999 Ethan Galstad (nagios at nagios.org)
- *
- * $Id$
- *
- * Description:
- *
- * This plugin checks the number of currently running processes and
- * generates WARNING or CRITICAL states if the process count is outside
- * the specified threshold ranges. The process count can be filtered by
- * process owner, parent process PID, current state (e.g., 'Z'), or may
- * be the total number of running processes
- *
- * License Information:
- *
- * 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_procs";
- #define REVISION "$Revision$"
- #define COPYRIGHT "1999-2002"
- #define AUTHOR "Ethan Galstad"
- #define EMAIL "nagios at nagios.org"
- #define SUMMARY "\
- Checks all processes and generates WARNING or CRITICAL states if the specified\n\
- metric is outside the required threshold ranges. The metric defaults to number\n\
- of processes.  Search filters can be applied to limit the processes to check.\n"
  
! #define OPTIONS "\
! -w <range> -c <range> [-m metric]\n\
!             [-s state] [-p ppid] [-u user] [-r rss] [-z vsz] [-P %cpu]\n\
!             [-a argument-array] [-C command] [-v]"
  
! #define LONGOPTIONS "\
! Required Arguments:\n\
!  -w, --warning=RANGE\n\
!    Generate warning state if metric is outside this range\n\
!  -c, --critical=RANGE\n\
!    Generate critical state if metric is outside this range\n\
! Optional Arguments:\n\
!  -m, --metric=TYPE\n\
!    Check thresholds against metric. Valid types:\n\
!    PROCS - number of processes (default)\n\
!    VSZ  - virtual memory size\n\
!    RSS  - resident set memory size\n\
!    CPU  - percentage cpu\n\
!  -v, --verbose\n\
!    Extra information. Up to 3 verbosity levels\n\
! Optional Filters:\n\
!  -s, --state=STATUSFLAGS\n\
!    Only scan for processes that have, in the output of `ps`, one or\n\
!    more of the status flags you specify (for example R, Z, S, RS,\n\
!    RSZDT, plus others based on the output of your 'ps' command).\n\
!  -p, --ppid=PPID\n\
!    Only scan for children of the parent process ID indicated.\n\
!  -z, --vsz=VSZ\n\
!    Only scan for processes with vsz higher than indicated.\n\
!  -r, --rss=RSS\n\
!    Only scan for processes with rss higher than indicated.\n\
!  -P, --pcpu=PCPU\n\
!    Only scan for processes with pcpu higher than indicated.\n\
!  -u, --user=USER\n\
!    Only scan for processes with user name or ID indicated.\n\
!  -a, --argument-array=STRING\n\
!    Only scan for processes with args that contain STRING.\n\
!  -C, --command=COMMAND\n\
!    Only scan for exact matches to the named COMMAND.\n\
! \n\
! RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n\
! specified 'max:min', a warning status will be generated if the\n\
! count is inside the specified range\n"
  
! #define EXAMPLES "\
!  check_procs -w 2:2 -c 2:1024 -C portsentry\n\
!    Warning if not two processes with command name portsentry. Critical\n\
!    if < 2 or > 1024 processes\n\
!  check_procs -w 10 -a '/usr/local/bin/perl' -u root\n\
!    Warning alert if > 10 processes with command arguments containing \n\
!    '/usr/local/bin/perl' and owned by root\n\
!  check_procs -w 50000 -c 100000 --metric=VSZ\n\
!    Alert if vsz of any processes over 50K or 100K\n"
  
- #include "config.h"
- #include <pwd.h>
  #include "common.h"
  #include "popen.h"
  #include "utils.h"
  
  int process_arguments (int, char **);
  int validate_arguments (void);
- void print_usage (void);
- void print_help (void);
  int check_thresholds (int);
  
  int wmax = -1;
--- 1,35 ----
  /******************************************************************************
  
!  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_procs";
! const char *revision = "$Revision$";
! const char *copyright = "2000-2003";
! const char *email = "nagiosplug-devel at lists.sourceforge.net";
  
  #include "common.h"
  #include "popen.h"
  #include "utils.h"
+ #include <pwd.h>
  
  int process_arguments (int, char **);
  int validate_arguments (void);
  int check_thresholds (int);
+ void print_help (void);
+ void print_usage (void);
  
  int wmax = -1;
***************
*** 148,151 ****
--- 70,78 ----
  char tmp[MAX_INPUT_BUFFER];
  
+ 
+ 
+ 
+ 
+ 
  int
  main (int argc, char **argv)
***************
*** 171,175 ****
  	int warn = 0; /* number of processes in warn state */
  	int crit = 0; /* number of processes in crit state */
! 	int i;
  
  	int result = STATE_UNKNOWN;
--- 98,102 ----
  	int warn = 0; /* number of processes in warn state */
  	int crit = 0; /* number of processes in crit state */
! 	int i = 0;
  
  	int result = STATE_UNKNOWN;
***************
*** 179,190 ****
  
  	if (process_arguments (argc, argv) == ERROR)
! 		usage ("Unable to parse command line\n");
  
  	if (verbose >= 2)
! 		printf ("CMD: %s\n", PS_COMMAND);
  
  	child_process = spopen (PS_COMMAND);
  	if (child_process == NULL) {
! 		printf ("Could not open pipe: %s\n", PS_COMMAND);
  		return STATE_UNKNOWN;
  	}
--- 106,117 ----
  
  	if (process_arguments (argc, argv) == ERROR)
! 		usage (_("Unable to parse command line\n"));
  
  	if (verbose >= 2)
! 		printf (_("CMD: %s\n"), PS_COMMAND);
  
  	child_process = spopen (PS_COMMAND);
  	if (child_process == NULL) {
! 		printf (_("Could not open pipe: %s\n"), PS_COMMAND);
  		return STATE_UNKNOWN;
  	}
***************
*** 192,202 ****
  	child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
  	if (child_stderr == NULL)
! 		printf ("Could not open stderr for %s\n", PS_COMMAND);
  
  	fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
  
  	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
! 		strcpy(procprog,"");
! 		asprintf(&procargs,"");
  
  		cols = sscanf (input_buffer, PS_FORMAT, PS_VARLIST);
--- 119,129 ----
  	child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
  	if (child_stderr == NULL)
! 		printf (_("Could not open stderr for %s\n"), PS_COMMAND);
  
  	fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
  
  	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
! 		strcpy (procprog, "");
! 		asprintf (&procargs, "%s", "");
  
  		cols = sscanf (input_buffer, PS_FORMAT, PS_VARLIST);
***************
*** 271,275 ****
  		/* This should not happen */
  		else if (verbose) {
! 			printf("Not parseable: %s", input_buffer);
  		}
  	}
--- 198,202 ----
  		/* This should not happen */
  		else if (verbose) {
! 			printf(_("Not parseable: %s"), input_buffer);
  		}
  	}
***************
*** 278,284 ****
  	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
  		if (verbose)
! 			printf ("STDERR: %s", input_buffer);
  		result = max_state (result, STATE_WARNING);
! 		printf ("System call sent warnings to stderr\n");
  	}
  	
--- 205,211 ----
  	while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
  		if (verbose)
! 			printf (_("STDERR: %s"), input_buffer);
  		result = max_state (result, STATE_WARNING);
! 		printf (_("System call sent warnings to stderr\n"));
  	}
  	
***************
*** 287,296 ****
  	/* close the pipe */
  	if (spclose (child_process)) {
! 		printf ("System call returned nonzero status\n");
  		result = max_state (result, STATE_WARNING);
  	}
  
  	if (found == 0) {							/* no process lines parsed so return STATE_UNKNOWN */
! 		printf ("Unable to read output\n");
  		return result;
  	}
--- 214,223 ----
  	/* close the pipe */
  	if (spclose (child_process)) {
! 		printf (_("System call returned nonzero status\n"));
  		result = max_state (result, STATE_WARNING);
  	}
  
  	if (found == 0) {							/* no process lines parsed so return STATE_UNKNOWN */
! 		printf (_("Unable to read output\n"));
  		return result;
  	}
***************
*** 305,316 ****
  
  	if ( result == STATE_OK ) {
! 		printf ("%s OK: %d process%s", 
  			metric_name, procs, ( procs != 1 ? "es" : "") );
  	} else if (result == STATE_WARNING) {
  		if ( metric == METRIC_PROCS ) {
! 			printf ("PROCS WARNING: %d process%s", procs, 
  				( procs != 1 ? "es" : ""));
  		} else {
! 			printf ("%s WARNING: %d warn out of %d process%s", 
  				metric_name, warn, procs, 
  				( procs != 1 ? "es" : ""));
--- 232,243 ----
  
  	if ( result == STATE_OK ) {
! 		printf (_("%s OK: %d process%s"), 
  			metric_name, procs, ( procs != 1 ? "es" : "") );
  	} else if (result == STATE_WARNING) {
  		if ( metric == METRIC_PROCS ) {
! 			printf (_("PROCS WARNING: %d process%s"), procs, 
  				( procs != 1 ? "es" : ""));
  		} else {
! 			printf (_("%s WARNING: %d warn out of %d process%s"), 
  				metric_name, warn, procs, 
  				( procs != 1 ? "es" : ""));
***************
*** 318,325 ****
  	} else if (result == STATE_CRITICAL) {
  		if (metric == METRIC_PROCS) {
! 			printf ("PROCS CRITICAL: %d process%s", procs, 
  				( procs != 1 ? "es" : ""));
  		} else {
! 			printf ("%s CRITICAL: %d crit, %d warn out of %d process%s", 
  				metric_name, crit, warn, procs, 
  				( procs != 1 ? "es" : ""));
--- 245,252 ----
  	} else if (result == STATE_CRITICAL) {
  		if (metric == METRIC_PROCS) {
! 			printf (_("PROCS CRITICAL: %d process%s"), procs, 
  				( procs != 1 ? "es" : ""));
  		} else {
! 			printf (_("%s CRITICAL: %d crit, %d warn out of %d process%s"), 
  				metric_name, crit, warn, procs, 
  				( procs != 1 ? "es" : ""));
***************
*** 338,373 ****
  }
  
- /* Check thresholds against value */
- int
- check_thresholds (int value)
- {
-  	if (wmax == -1 && cmax == -1 && wmin == -1 && cmin == -1) {
- 		return OK;
-  	}
- 	else if (cmax >= 0 && cmin >= 0 && cmax < cmin) {
- 		if (value > cmax && value < cmin)
- 			return STATE_CRITICAL;
- 	}
- 	else if (cmax >= 0 && value > cmax) {
- 		return STATE_CRITICAL;
- 	}
- 	else if (cmin >= 0 && value < cmin) {
- 		return STATE_CRITICAL;
- 	}
  
- 	if (wmax >= 0 && wmin >= 0 && wmax < wmin) {
- 		if (value > wmax && value < wmin) {
- 			return STATE_WARNING;
- 		}
- 	}
- 	else if (wmax >= 0 && value > wmax) {
- 		return STATE_WARNING;
- 	}
- 	else if (wmin >= 0 && value < wmin) {
- 		return STATE_WARNING;
- 	}
- 	return STATE_OK;
- }
  
  /* process command-line arguments */
  int
--- 265,273 ----
  }
  
  
  
+ 
+ 
+ 
  /* process command-line arguments */
  int
***************
*** 415,423 ****
  			exit (STATE_OK);
  		case 'V':									/* version */
! 			print_revision (progname, REVISION);
  			exit (STATE_OK);
  		case 't':									/* timeout period */
  			if (!is_integer (optarg)) {
! 				printf ("%s: Timeout Interval must be an integer!\n\n",
  				        progname);
  				print_usage ();
--- 315,323 ----
  			exit (STATE_OK);
  		case 'V':									/* version */
! 			print_revision (progname, revision);
  			exit (STATE_OK);
  		case 't':									/* timeout period */
  			if (!is_integer (optarg)) {
! 				printf (_("%s: Timeout Interval must be an integer!\n\n"),
  				        progname);
  				print_usage ();
***************
*** 441,445 ****
  			}
  			else {
! 				printf ("%s: Critical Process Count must be an integer!\n\n",
  				        progname);
  				print_usage ();
--- 341,345 ----
  			}
  			else {
! 				printf (_("%s: Critical Process Count must be an integer!\n\n"),
  				        progname);
  				print_usage ();
***************
*** 461,465 ****
  			}
  			else {
! 				printf ("%s: Warning Process Count must be an integer!\n\n",
  				        progname);
  				print_usage ();
--- 361,365 ----
  			}
  			else {
! 				printf (_("%s: Warning Process Count must be an integer!\n\n"),
  				        progname);
  				print_usage ();
***************
*** 472,476 ****
  				break;
  			}
! 			printf ("%s: Parent Process ID must be an integer!\n\n",
  			        progname);
  			print_usage ();
--- 372,376 ----
  				break;
  			}
! 			printf (_("%s: Parent Process ID must be an integer!\n\n"),
  			        progname);
  			print_usage ();
***************
*** 478,482 ****
  		case 's':									/* status */
  			asprintf (&statopts, "%s", optarg);
! 			asprintf (&fmt, "%s%sSTATE = %s", fmt, (options ? ", " : ""), statopts);
  			options |= STAT;
  			break;
--- 378,382 ----
  		case 's':									/* status */
  			asprintf (&statopts, "%s", optarg);
! 			asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts);
  			options |= STAT;
  			break;
***************
*** 487,491 ****
  				/*  check to be sure user exists */
  				if (pw == NULL) {
! 					printf ("UID %d was not found\n", uid);
  					print_usage ();
  					exit (STATE_UNKNOWN);
--- 387,391 ----
  				/*  check to be sure user exists */
  				if (pw == NULL) {
! 					printf (_("UID %d was not found\n"), uid);
  					print_usage ();
  					exit (STATE_UNKNOWN);
***************
*** 496,500 ****
  				/*  check to be sure user exists */
  				if (pw == NULL) {
! 					printf ("User name %s was not found\n", optarg);
  					print_usage ();
  					exit (STATE_UNKNOWN);
--- 396,400 ----
  				/*  check to be sure user exists */
  				if (pw == NULL) {
! 					printf (_("User name %s was not found\n"), optarg);
  					print_usage ();
  					exit (STATE_UNKNOWN);
***************
*** 504,508 ****
  			}
  			user = pw->pw_name;
! 			asprintf (&fmt, "%s%sUID = %d (%s)", fmt, (options ? ", " : ""),
  			          uid, user);
  			options |= USER;
--- 404,408 ----
  			}
  			user = pw->pw_name;
! 			asprintf (&fmt, _("%s%sUID = %d (%s)"), fmt, (options ? ", " : ""),
  			          uid, user);
  			options |= USER;
***************
*** 510,514 ****
  		case 'C':									/* command */
  			asprintf (&prog, "%s", optarg);
! 			asprintf (&fmt, "%s%scommand name '%s'", fmt, (options ? ", " : ""),
  			          prog);
  			options |= PROG;
--- 410,414 ----
  		case 'C':									/* command */
  			asprintf (&prog, "%s", optarg);
! 			asprintf (&fmt, _("%s%scommand name '%s'"), fmt, (options ? ", " : ""),
  			          prog);
  			options |= PROG;
***************
*** 516,529 ****
  		case 'a':									/* args (full path name with args) */
  			asprintf (&args, "%s", optarg);
! 			asprintf (&fmt, "%s%sargs '%s'", fmt, (options ? ", " : ""), args);
  			options |= ARGS;
  			break;
  		case 'r': 					/* RSS */
  			if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) {
! 				asprintf (&fmt, "%s%sRSS >= %d", fmt, (options ? ", " : ""), rss);
  				options |= RSS;
  				break;
  			}
! 			printf ("%s: RSS must be an integer!\n\n",
  			        progname);
  			print_usage ();
--- 416,429 ----
  		case 'a':									/* args (full path name with args) */
  			asprintf (&args, "%s", optarg);
! 			asprintf (&fmt, _("%s%sargs '%s'"), fmt, (options ? ", " : ""), args);
  			options |= ARGS;
  			break;
  		case 'r': 					/* RSS */
  			if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) {
! 				asprintf (&fmt, _("%s%sRSS >= %d"), fmt, (options ? ", " : ""), rss);
  				options |= RSS;
  				break;
  			}
! 			printf (_("%s: RSS must be an integer!\n\n"),
  			        progname);
  			print_usage ();
***************
*** 531,539 ****
  		case 'z':					/* VSZ */
  			if (sscanf (optarg, "%d%[^0-9]", &vsz, tmp) == 1) {
! 				asprintf (&fmt, "%s%sVSZ >= %d", fmt, (options ? ", " : ""), vsz);
  				options |= VSZ;
  				break;
  			}
! 			printf ("%s: VSZ must be an integer!\n\n",
  			        progname);
  			print_usage ();
--- 431,439 ----
  		case 'z':					/* VSZ */
  			if (sscanf (optarg, "%d%[^0-9]", &vsz, tmp) == 1) {
! 				asprintf (&fmt, _("%s%sVSZ >= %d"), fmt, (options ? ", " : ""), vsz);
  				options |= VSZ;
  				break;
  			}
! 			printf (_("%s: VSZ must be an integer!\n\n"),
  			        progname);
  			print_usage ();
***************
*** 542,550 ****
  			/* TODO: -P 1.5.5 is accepted */
  			if (sscanf (optarg, "%f%[^0-9.]", &pcpu, tmp) == 1) {
! 				asprintf (&fmt, "%s%sPCPU >= %.2f", fmt, (options ? ", " : ""), pcpu);
  				options |= PCPU;
  				break;
  			}
! 			printf ("%s: PCPU must be a float!\n\n",
  			        progname);
  			print_usage ();
--- 442,450 ----
  			/* TODO: -P 1.5.5 is accepted */
  			if (sscanf (optarg, "%f%[^0-9.]", &pcpu, tmp) == 1) {
! 				asprintf (&fmt, _("%s%sPCPU >= %.2f"), fmt, (options ? ", " : ""), pcpu);
  				options |= PCPU;
  				break;
  			}
! 			printf (_("%s: PCPU must be a float!\n\n"),
  			        progname);
  			print_usage ();
***************
*** 568,572 ****
  				break;
  			}
! 			printf ("%s: metric must be one of PROCS, VSZ, RSS, CPU!\n\n",
  				progname);
  			print_usage ();
--- 468,472 ----
  				break;
  			}
! 			printf (_("%s: metric must be one of PROCS, VSZ, RSS, CPU!\n\n"),
  				progname);
  			print_usage ();
***************
*** 585,589 ****
  	if (statopts == NULL && argv[c]) {
  		asprintf (&statopts, "%s", argv[c++]);
! 		asprintf (&fmt, "%s%sSTATE = %s", fmt, (options ? ", " : ""), statopts);
  		options |= STAT;
  	}
--- 485,489 ----
  	if (statopts == NULL && argv[c]) {
  		asprintf (&statopts, "%s", argv[c++]);
! 		asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts);
  		options |= STAT;
  	}
***************
*** 593,596 ****
--- 493,498 ----
  
  
+ 
+ 
  int
  validate_arguments ()
***************
*** 603,611 ****
  	if (wmax >= wmin && cmax >= cmin) {	/* standard ranges */
  		if (wmax > cmax && cmax != -1) {
! 			printf ("wmax (%d) cannot be greater than cmax (%d)\n", wmax, cmax);
  			return ERROR;
  		}
  		if (cmin > wmin && wmin != -1) {
! 			printf ("wmin (%d) cannot be less than cmin (%d)\n", wmin, cmin);
  			return ERROR;
  		}
--- 505,513 ----
  	if (wmax >= wmin && cmax >= cmin) {	/* standard ranges */
  		if (wmax > cmax && cmax != -1) {
! 			printf (_("wmax (%d) cannot be greater than cmax (%d)\n"), wmax, cmax);
  			return ERROR;
  		}
  		if (cmin > wmin && wmin != -1) {
! 			printf (_("wmin (%d) cannot be less than cmin (%d)\n"), wmin, cmin);
  			return ERROR;
  		}
***************
*** 624,636 ****
  
  
  void
  print_help (void)
  {
! 	print_revision (progname, REVISION);
! 	printf
! 		("Copyright (c) %s %s <%s>\n\n%s\n",
! 		 COPYRIGHT, AUTHOR, EMAIL, SUMMARY);
  	print_usage ();
! 	printf ("\nOptions:\n" LONGOPTIONS "\nExamples:\n" EXAMPLES "\n");
  }
  
--- 526,650 ----
  
  
+ 
+ 
+ 
+ 
+ /* Check thresholds against value */
+ int
+ check_thresholds (int value)
+ {
+  	if (wmax == -1 && cmax == -1 && wmin == -1 && cmin == -1) {
+ 		return OK;
+  	}
+ 	else if (cmax >= 0 && cmin >= 0 && cmax < cmin) {
+ 		if (value > cmax && value < cmin)
+ 			return STATE_CRITICAL;
+ 	}
+ 	else if (cmax >= 0 && value > cmax) {
+ 		return STATE_CRITICAL;
+ 	}
+ 	else if (cmin >= 0 && value < cmin) {
+ 		return STATE_CRITICAL;
+ 	}
+ 
+ 	if (wmax >= 0 && wmin >= 0 && wmax < wmin) {
+ 		if (value > wmax && value < wmin) {
+ 			return STATE_WARNING;
+ 		}
+ 	}
+ 	else if (wmax >= 0 && value > wmax) {
+ 		return STATE_WARNING;
+ 	}
+ 	else if (wmin >= 0 && value < wmin) {
+ 		return STATE_WARNING;
+ 	}
+ 	return STATE_OK;
+ }
+ 
+ 
+ 
+ 
+ 
+ 
  void
  print_help (void)
  {
! 	print_revision (progname, revision);
! 
! 	printf (_("Copyright (c) 1999 Ethan Galstad <nagios at nagios.org>"));
! 	printf (_(COPYRIGHT), copyright, email);
! 
! 	printf(_("\
! Checks all processes and generates WARNING or CRITICAL states if the specified\n\
! metric is outside the required threshold ranges. The metric defaults to number\n\
! of processes.  Search filters can be applied to limit the processes to check.\n\n"));
! 
  	print_usage ();
! 
! 	printf(_("\n\
! Required Arguments:\n\
!  -w, --warning=RANGE\n\
!    Generate warning state if metric is outside this range\n\
!  -c, --critical=RANGE\n\
!    Generate critical state if metric is outside this range\n"));
! 
! 	printf(_("\n\
! Optional Arguments:\n\
!  -m, --metric=TYPE\n\
!    Check thresholds against metric. Valid types:\n\
!    PROCS - number of processes (default)\n\
!    VSZ  - virtual memory size\n\
!    RSS  - resident set memory size\n\
!    CPU  - percentage cpu\n\
!  -v, --verbose\n\
!    Extra information. Up to 3 verbosity levels\n"));
! 
! 	printf(_("\n\
! Optional Filters:\n\
!  -s, --state=STATUSFLAGS\n\
!    Only scan for processes that have, in the output of `ps`, one or\n\
!    more of the status flags you specify (for example R, Z, S, RS,\n\
!    RSZDT, plus others based on the output of your 'ps' command).\n\
!  -p, --ppid=PPID\n\
!    Only scan for children of the parent process ID indicated.\n\
!  -z, --vsz=VSZ\n\
!    Only scan for processes with vsz higher than indicated.\n\
!  -r, --rss=RSS\n\
!    Only scan for processes with rss higher than indicated.\n"));
! 
! 	printf(_("\
!  -P, --pcpu=PCPU\n\
!    Only scan for processes with pcpu higher than indicated.\n\
!  -u, --user=USER\n\
!    Only scan for processes with user name or ID indicated.\n\
!  -a, --argument-array=STRING\n\
!    Only scan for processes with args that contain STRING.\n\
!  -C, --command=COMMAND\n\
!    Only scan for exact matches to the named COMMAND.\n"));
! 
! 	printf(_("\n\
! RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n\
! specified 'max:min', a warning status will be generated if the\n\
! count is inside the specified range\n\n"));
! 
! 	printf(_("\
! This plugin checks the number of currently running processes and\n\
! generates WARNING or CRITICAL states if the process count is outside\n\
! the specified threshold ranges. The process count can be filtered by\n\
! process owner, parent process PID, current state (e.g., 'Z'), or may\n\
! be the total number of running processes\n\n"));
! 
! 	printf(_("\
! Examples:\n\
!  check_procs -w 2:2 -c 2:1024 -C portsentry\n\
!    Warning if not two processes with command name portsentry. Critical\n\
!    if < 2 or > 1024 processes\n\n\
!  check_procs -w 10 -a '/usr/local/bin/perl' -u root\n\
!    Warning alert if > 10 processes with command arguments containing \n\
!    '/usr/local/bin/perl' and owned by root\n\n\
!  check_procs -w 50000 -c 100000 --metric=VSZ\n\
!    Alert if vsz of any processes over 50K or 100K\n\n"));
! 
! 	printf (_(UT_SUPPORT));
  }
  
***************
*** 638,644 ****
  print_usage (void)
  {
! 	printf ("Usage:\n" " %s %s\n"
! 		 " %s (-h | --help) for detailed help\n"
! 		 " %s (-V | --version) for version information\n",
! 	progname, OPTIONS, progname, progname);	
  }
--- 652,660 ----
  print_usage (void)
  {
! 	printf ("\
! Usage: %s -w <range> -c <range> [-m metric] [-s state] [-p ppid]\n\
!   [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n\
!   [-C command] [-v]\n", progname);	
! 	printf (_(UT_HLP_VRS), progname, progname);
  }
+ 





More information about the Commits mailing list