diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c
index 5f50ca7ec4c848538ddb3ac4e2cd06b1589990fe..16ada20d9667cff550ca9a7756a63d8e70d2d8e8 100644 (file)
--- a/plugins/check_overcr.c
+++ b/plugins/check_overcr.c
-/******************************************************************************
-
- 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.
-
-******************************************************************************/
+/*****************************************************************************
+*
+* Nagios check_overcr plugin
+*
+* License: GPL
+* Copyright (c) 2000-2007 Nagios Plugins Development Team
+*
+* Description:
+*
+* This file contains the check_overcr plugin
+*
+* This plugin attempts to contact the Over-CR collector daemon running on the
+* remote UNIX server in order to gather the requested system 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 3 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, see <http://www.gnu.org/licenses/>.
+*
+*
+*****************************************************************************/
const char *progname = "check_overcr";
-const char *revision = "$Revision$";
-const char *copyright = "2000-2003";
+const char *copyright = "2000-2007";
const char *email = "nagiosplug-devel@lists.sourceforge.net";
#include "common.h"
int
main (int argc, char **argv)
{
- int result;
+ int result = STATE_UNKNOWN;
char recv_buffer[MAX_INPUT_BUFFER];
char temp_buffer[MAX_INPUT_BUFFER];
char *temp_ptr = NULL;
int uptime_hours = 0;
int uptime_minutes = 0;
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
+ /* Parse extra opts if any */
+ argv=np_extra_opts (&argc, argv, progname);
+
if (process_arguments (argc, argv) == ERROR)
- usage ("Could not parse arguments\n");
+ usage4 (_("Could not parse arguments"));
/* initialize alarm signal handling */
signal (SIGALRM, socket_timeout_alarm_handler);
temp_ptr = (char *) strtok (recv_buffer, "\r\n");
if (temp_ptr == NULL)
die (STATE_CRITICAL, _("Invalid response from server - no load information\n"));
- load_1min = strtod (temp_ptr, NULL);
+ else
+ load_1min = strtod (temp_ptr, NULL);
temp_ptr = (char *) strtok (NULL, "\r\n");
if (temp_ptr == NULL)
die (STATE_CRITICAL, _("Invalid response from server after load 1\n"));
- load_5min = strtod (temp_ptr, NULL);
+ else
+ load_5min = strtod (temp_ptr, NULL);
temp_ptr = (char *) strtok (NULL, "\r\n");
if (temp_ptr == NULL)
die (STATE_CRITICAL, _("Invalid response from server after load 5\n"));
- load_15min = strtod (temp_ptr, NULL);
+ else
+ load_15min = strtod (temp_ptr, NULL);
switch (vars_to_check) {
case LOAD1:
temp_ptr = (char *) strtok (NULL, "%");
if (temp_ptr == NULL)
die (STATE_CRITICAL, _("Invalid response from server\n"));
- percent_used_disk_space = strtoul (temp_ptr, NULL, 10);
+ else
+ percent_used_disk_space = strtoul (temp_ptr, NULL, 10);
break;
}
/* error if we couldn't find the info for the disk */
if (found_disk == FALSE)
die (STATE_CRITICAL,
- "Error: Disk '%s' non-existent or not mounted",
+ "CRITICAL - Disk '%s' non-existent or not mounted",
disk_name);
if (check_critical_value == TRUE && (percent_used_disk_space >= critical_value))
if (result != STATE_OK)
die (result, _("Unknown error fetching network status\n"));
-
- port_connections = strtod (recv_buffer, NULL);
+ else
+ port_connections = strtod (recv_buffer, NULL);
if (check_critical_value == TRUE && (port_connections >= critical_value))
result = STATE_CRITICAL;
temp_ptr = (char *) strtok (NULL, ")");
if (temp_ptr == NULL)
die (STATE_CRITICAL, _("Invalid response from server\n"));
-
- processes = strtod (temp_ptr, NULL);
+ else
+ processes = strtod (temp_ptr, NULL);
if (check_critical_value == TRUE && (processes >= critical_value))
result = STATE_CRITICAL;
die (STATE_UNKNOWN, _("Nothing to check!\n"));
break;
}
-
- /* reset timeout */
- alarm (0);
-
- printf (_("Reached end of program with no data returned\n"));
-
- return result;
}
-
-
-
/* process command-line arguments */
int
process_arguments (int argc, char **argv)
{
int c;
- int option_index = 0;
- static struct option long_options[] = {
+ int option = 0;
+ static struct option longopts[] = {
{"port", required_argument, 0, 'p'},
{"timeout", required_argument, 0, 't'},
{"critical", required_argument, 0, 'c'},
}
while (1) {
- c = getopt_long (argc, argv, "+hVH:t:c:w:p:v:", long_options,
- &option_index);
+ c = getopt_long (argc, argv, "+hVH:t:c:w:p:v:", longopts,
+ &option);
if (c == -1 || c == EOF || c == 1)
break;
switch (c) {
case '?': /* print short usage statement if args not parsable */
- printf (_("%s: Unknown argument: %s\n\n"), progname, optarg);
- print_usage ();
- exit (STATE_UNKNOWN);
+ usage5 ();
case 'h': /* help */
print_help ();
exit (STATE_OK);
case 'V': /* version */
- print_revision (progname, "$Revision$");
+ print_revision (progname, NP_VERSION);
exit (STATE_OK);
case 'H': /* hostname */
server_address = optarg;
server_port = atoi (optarg);
else
die (STATE_UNKNOWN,
- _("Server port an integer (seconds)\nType '%s -h' for additional help\n"),
- progname);
+ _("Server port an integer\n"));
break;
case 'v': /* variable */
if (strcmp (optarg, "LOAD") == 0) {
}
return OK;
}
-\f
-void
-print_usage (void)
-{
- printf (_("\
-Usage: %s -H host [-p port] [-v variable] [-w warning] [-c critical]\n\
- [-t timeout]\n"),
- progname);
- printf (_(UT_HLP_VRS), progname, progname);
-}
+
void
print_help (void)
char *myport;
asprintf (&myport, "%d", PORT);
- print_revision (progname, revision);
+ print_revision (progname, NP_VERSION);
+
+ printf ("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n");
+ printf (COPYRIGHT, copyright, email);
- printf (_("Copyright (c) 1999 Ethan Galstad <nagios@nagios.org>\n"));
- printf (_(COPYRIGHT), copyright, email);
+ printf ("%s\n", _("This plugin attempts to contact the Over-CR collector daemon running on the"));
+ printf ("%s\n", _("remote UNIX server in order to gather the requested system information."));
- printf (_("\
-This plugin attempts to contact the Over-CR collector daemon running on the\n\
-remote UNIX server in order to gather the requested system information.\n\n"));
+ printf ("\n\n");
print_usage ();
- printf (_(UT_HELP_VRSN));
-
- printf (_(UT_HOST_PORT), 'p', myport);
-
- printf (_("\
--v, --variable=STRING\n\
- Variable to check. Valid variables include:\n\
- LOAD1 = 1 minute average CPU load\n\
- LOAD5 = 5 minute average CPU load\n\
- LOAD15 = 15 minute average CPU load\n\
- DPU<filesys> = percent used disk space on filesystem <filesys>\n\
- PROC<process> = number of running processes with name <process>\n\
- NET<port> = number of active connections on TCP port <port>\n\
- UPTIME = system uptime in seconds\n"));
-
- printf (_("\
- -w, --warning=INTEGER\n\
- Threshold which will result in a warning status\n\
- -c, --critical=INTEGER\n\
- Threshold which will result in a critical status\n"));
-
- printf (_(UT_TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
-
- printf (_("\
-Notes:\n\
- - For the available options, the critical threshold value should always be\n\
- higher than the warning threshold value, EXCEPT with the uptime variable\n\n"));
-
- printf (_("\
- - This plugin requres that Eric Molitors' Over-CR collector daemon be\n\
- running on the remote server. Over-CR can be downloaded from\n\
- http://www.molitor.org/overcr (This plugin was tested with version\n\
- 0.99.53 of the Over-CR collector)\n\n"));
-
- printf (_(UT_SUPPORT));
+ printf (UT_HELP_VRSN);
+ printf (UT_EXTRA_OPTS);
+
+ printf (UT_HOST_PORT, 'p', myport);
+
+ printf (" %s\n", "-w, --warning=INTEGER");
+ printf (" %s\n", _("Threshold which will result in a warning status"));
+ printf (" %s\n", "-c, --critical=INTEGER");
+ printf (" %s\n", _("Threshold which will result in a critical status"));
+ printf (" %s\n", "-v, --variable=STRING");
+ printf (" %s\n", _("Variable to check. Valid variables include:"));
+ printf (" %s\n", _("LOAD1 = 1 minute average CPU load"));
+ printf (" %s\n", _("LOAD5 = 5 minute average CPU load"));
+ printf (" %s\n", _("LOAD15 = 15 minute average CPU load"));
+ printf (" %s\n", _("DPU<filesys> = percent used disk space on filesystem <filesys>"));
+ printf (" %s\n", _("PROC<process> = number of running processes with name <process>"));
+ printf (" %s\n", _("NET<port> = number of active connections on TCP port <port>"));
+ printf (" %s\n", _("UPTIME = system uptime in seconds"));
+
+ printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT);
+
+ printf (UT_VERBOSE);
+
+ printf ("\n");
+ printf ("%s\n", _("This plugin requires that Eric Molitors' Over-CR collector daemon be"));
+ printf ("%s\n", _("running on the remote server."));
+ printf ("%s\n", _("Over-CR can be downloaded from http://www.molitor.org/overcr"));
+ printf ("%s\n", _("This plugin was tested with version 0.99.53 of the Over-CR collector"));
+
+ printf ("\n");
+ printf ("%s\n", _("Notes:"));
+ printf (" %s\n", _("For the available options, the critical threshold value should always be"));
+ printf (" %s\n", _("higher than the warning threshold value, EXCEPT with the uptime variable"));
+
+ printf (UT_SUPPORT);
+}
+
+
+void
+print_usage (void)
+{
+ printf ("%s\n", _("Usage:"));
+ printf ("%s -H host [-p port] [-v variable] [-w warning] [-c critical] [-t timeout]\n", progname);
}