Просмотр исходного кода

mark for translation

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@622 f882894a-f735-0410-b71e-b25c423dba1c
Karl DeBisschop 22 лет назад
Родитель
Сommit
f66c7492f5
2 измененных файлов с 107 добавлено и 116 удалено
  1. 103 116
      plugins/check_disk.c
  2. 4 0
      plugins/utils.h

+ 103 - 116
plugins/check_disk.c

@@ -19,18 +19,49 @@
 const char *progname = "check_disk";
 const char *progname = "check_disk";
 const char *revision = "$Revision$";
 const char *revision = "$Revision$";
 const char *copyright = "1999-2003";
 const char *copyright = "1999-2003";
-const char *authors = "Nagios Plugin Development Team";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 
-const char *summary = "\
+#include "common.h"
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#include <assert.h>
+#include "popen.h"
+#include "utils.h"
+#include <stdarg.h>
+#include "../lib/fsusage.h"
+#include "../lib/mountlist.h"
+#if HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+void
+print_usage (void)
+{
+	printf (_("\
+Usage: %s -w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e]\n\
+        [-v] [-q]\n\
+       %s (-h|--help)\n\
+       %s (-V|--version)\n"),
+	        progname,  progname, progname);
+}
+
+void
+print_help (void)
+{
+	print_revision (progname, revision);
+
+	printf (_(COPYRIGHT), copyright, email);
+
+	printf (_("\
 This plugin checks the amount of used disk space on a mounted file system\n\
 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.";
+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]";
+	print_usage ();
 
 
-const char *options = "\
+	printf (_(HELP_VRSN));
+
+	printf (_("\
  -w, --warning=INTEGER\n\
  -w, --warning=INTEGER\n\
    Exit with WARNING status if less than INTEGER kilobytes of disk are free\n\
    Exit with WARNING status if less than INTEGER kilobytes of disk are free\n\
  -w, --warning=PERCENT%%\n\
  -w, --warning=PERCENT%%\n\
@@ -39,12 +70,18 @@ const char *options = "\
    Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n\
    Exit with CRITICAL status if less than INTEGER kilobytes of disk are free\n\
  -c, --critical=PERCENT%%\n\
  -c, --critical=PERCENT%%\n\
    Exit with CRITCAL status if less than PERCENT of disk space is free\n\
    Exit with CRITCAL status if less than PERCENT of disk space is free\n\
+ -C, --clear\n\
+    Clear thresholds\n"));
+
+	printf (_("\
  -u, --units=STRING\n\
  -u, --units=STRING\n\
     Choose bytes, kB, MB, GB, TB (default: MB)\n\
     Choose bytes, kB, MB, GB, TB (default: MB)\n\
  -k, --kilobytes\n\
  -k, --kilobytes\n\
     Same as '--units kB'\n\
     Same as '--units kB'\n\
  -m, --megabytes\n\
  -m, --megabytes\n\
-    Same as '--units MB'\n\
+    Same as '--units MB'\n"));
+
+	printf (_("\
  -l, --local\n\
  -l, --local\n\
     Only check local filesystems\n\
     Only check local filesystems\n\
  -p, --path=PATH, --partition=PARTITION\n\
  -p, --path=PATH, --partition=PARTITION\n\
@@ -56,40 +93,22 @@ const char *options = "\
  -M, --mountpoint\n\
  -M, --mountpoint\n\
     Display the mountpoint instead of the partition\n\
     Display the mountpoint instead of the partition\n\
  -e, --errors-only\n\
  -e, --errors-only\n\
-    Display only devices/mountpoints with errors\n\
- -C, --clear\n\
-    Clear thresholds\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";
-
-const char *notes = "\
-\n";
-
-const char *examples = "\
+    Display only devices/mountpoints with errors\n"));
+
+	printf (_(TIMEOUT), DEFAULT_SOCKET_TIMEOUT);
+
+	printf (_(VRBS));
+
+	printf ("%s", _("Examples:\n\
  check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /\n\
  check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /\n\
-   Checks /tmp and /var at 10%,5% and / at 100MB, 50MB\n\
-\n";
+   Checks /tmp and /var at 10%,5% and / at 100MB, 50MB\n"));
 
 
-#include "common.h"
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#include <assert.h>
-#include "popen.h"
-#include "utils.h"
-#include <stdarg.h>
-#include "../lib/fsusage.h"
-#include "../lib/mountlist.h"
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
+	support ();
+}
+
 
 
 /* If nonzero, show inode information. */
 /* If nonzero, show inode information. */
-static int inode_format;
+/* static int inode_format; */
 
 
 /* If nonzero, show even filesystems with zero size or
 /* If nonzero, show even filesystems with zero size or
    uninteresting types. */
    uninteresting types. */
@@ -100,13 +119,13 @@ static int show_local_fs = 0;
 
 
 /* If positive, the units to use when printing sizes;
 /* If positive, the units to use when printing sizes;
    if negative, the human-readable base.  */
    if negative, the human-readable base.  */
-static int output_block_size;
+/* static int output_block_size; */
 
 
 /* If nonzero, invoke the `sync' system call before getting any usage data.
 /* If nonzero, invoke the `sync' system call before getting any usage data.
    Using this option can make df very slow, especially with many or very
    Using this option can make df very slow, especially with many or very
    busy disks.  Note that this may make a difference on some systems --
    busy disks.  Note that this may make a difference on some systems --
    SunOs4.1.3, for one.  It is *not* necessary on Linux.  */
    SunOs4.1.3, for one.  It is *not* necessary on Linux.  */
-static int require_sync = 0;
+/* static int require_sync = 0; */
 
 
 /* A filesystem type to display. */
 /* A filesystem type to display. */
 
 
@@ -116,8 +135,8 @@ struct name_list
   int found;
   int found;
   int w_df;
   int w_df;
   int c_df;
   int c_df;
-  float w_dfp;
-  float c_dfp;
+  double w_dfp;
+  double c_dfp;
   struct name_list *name_next;
   struct name_list *name_next;
 };
 };
 
 
@@ -132,7 +151,7 @@ struct name_list
    Some filesystem types:
    Some filesystem types:
    4.2 4.3 ufs nfs swap ignore io vm efs dbg */
    4.2 4.3 ufs nfs swap ignore io vm efs dbg */
 
 
-static struct name_list *fs_select_list;
+/* static struct name_list *fs_select_list; */
 
 
 /* Linked list of filesystem types to omit.
 /* Linked list of filesystem types to omit.
    If the list is empty, don't exclude any types.  */
    If the list is empty, don't exclude any types.  */
@@ -162,16 +181,14 @@ enum
 #endif
 #endif
 
 
 int process_arguments (int, char **);
 int process_arguments (int, char **);
-int validate_arguments (int, int, float, float, char *);
+int validate_arguments (int, int, double, double, char *);
 int check_disk (int usp, int free_disk);
 int check_disk (int usp, int free_disk);
 int walk_name_list (struct name_list *list, const char *name);
 int walk_name_list (struct name_list *list, const char *name);
-void print_help (void);
-void print_usage (void);
 
 
 int w_df = -1;
 int w_df = -1;
 int c_df = -1;
 int c_df = -1;
-float w_dfp = -1.0;
-float c_dfp = -1.0;
+double w_dfp = -1.0;
+double c_dfp = -1.0;
 char *path = "";
 char *path = "";
 char *exclude_device = "";
 char *exclude_device = "";
 char *units = "MB";
 char *units = "MB";
@@ -187,15 +204,9 @@ int
 main (int argc, char **argv)
 main (int argc, char **argv)
 {
 {
 	int usp = -1;
 	int usp = -1;
-	int total_disk = -1;
-	int used_disk = -1;
-	int free_disk = -1;
 	int result = STATE_UNKNOWN;
 	int result = STATE_UNKNOWN;
 	int disk_result = STATE_UNKNOWN;
 	int disk_result = STATE_UNKNOWN;
-	char *command_line = "";
-	char input_buffer[MAX_INPUT_BUFFER];
 	char file_system[MAX_INPUT_BUFFER];
 	char file_system[MAX_INPUT_BUFFER];
-	char mntp[MAX_INPUT_BUFFER];
 	char *output = "";
 	char *output = "";
 	char *details = "";
 	char *details = "";
 	float free_space, free_space_pct, total_space;
 	float free_space, free_space_pct, total_space;
@@ -203,12 +214,11 @@ main (int argc, char **argv)
 	struct mount_entry *me;
 	struct mount_entry *me;
 	struct fs_usage fsp;
 	struct fs_usage fsp;
 	struct name_list *temp_list;
 	struct name_list *temp_list;
-	char *disk;
 
 
 	mount_list = read_filesystem_list (0);
 	mount_list = read_filesystem_list (0);
 
 
 	if (process_arguments (argc, argv) != OK)
 	if (process_arguments (argc, argv) != OK)
-		usage ("Could not parse arguments\n");
+		usage (_("Could not parse arguments\n"));
 
 
 	for (me = mount_list; me; me = me->me_next) {
 	for (me = mount_list; me; me = me->me_next) {
 
 
@@ -225,8 +235,8 @@ main (int argc, char **argv)
 		else if (fs_exclude_list && walk_name_list (fs_exclude_list, me->me_type))
 		else if (fs_exclude_list && walk_name_list (fs_exclude_list, me->me_type))
 			continue;
 			continue;
 		else if (dp_exclude_list && 
 		else if (dp_exclude_list && 
-		         walk_name_list (dp_exclude_list, me->me_devname) ||
-		         walk_name_list (dp_exclude_list, me->me_mountdir))
+		         (walk_name_list (dp_exclude_list, me->me_devname) ||
+		          walk_name_list (dp_exclude_list, me->me_mountdir)))
 			continue;
 			continue;
 		else
 		else
 			get_fs_usage (me->me_mountdir, me->me_devname, &fsp);
 			get_fs_usage (me->me_mountdir, me->me_devname, &fsp);
@@ -242,13 +252,13 @@ main (int argc, char **argv)
 			free_space_pct = (float)fsp.fsu_bavail*100/fsp.fsu_blocks;
 			free_space_pct = (float)fsp.fsu_bavail*100/fsp.fsu_blocks;
 			total_space = (float)fsp.fsu_blocks*fsp.fsu_blocksize/mult;
 			total_space = (float)fsp.fsu_blocks*fsp.fsu_blocksize/mult;
 			if (disk_result!=STATE_OK || verbose>=0)
 			if (disk_result!=STATE_OK || verbose>=0)
-				asprintf (&output, "%s [%.0f %s (%.0f%%) free on %s]",
+				asprintf (&output, ("%s [%.0f %s (%.0f%%) free on %s]"),
 				          output,
 				          output,
 				          free_space,
 				          free_space,
 				          units,
 				          units,
 				          free_space_pct,
 				          free_space_pct,
 				          (!strcmp(file_system, "none") || display_mntp) ? me->me_devname : me->me_mountdir);
 				          (!strcmp(file_system, "none") || display_mntp) ? me->me_devname : me->me_mountdir);
-			asprintf (&details, "%s\n%.0f of %.0f %s (%.0f%%) free on %s (type %s mounted on %s) warn:%d crit:%d warn%%:%.0f%% crit%%:%.0f%%",
+			asprintf (&details, _("%s\n%.0f of %.0f %s (%.0f%%) free on %s (type %s mounted on %s) warn:%d crit:%d warn%%:%.0f%% crit%%:%.0f%%"),
 			          details,
 			          details,
 			          free_space,
 			          free_space,
 			          total_space,
 			          total_space,
@@ -269,13 +279,14 @@ main (int argc, char **argv)
 	temp_list = path_select_list;
 	temp_list = path_select_list;
 	while (temp_list) {
 	while (temp_list) {
 		if (temp_list->found != TRUE) {
 		if (temp_list->found != TRUE) {
-			asprintf (&output, "%s [%s not found]", output, temp_list->name);
+			asprintf (&output, _("%s [%s not found]"), output, temp_list->name);
 			result = STATE_CRITICAL;
 			result = STATE_CRITICAL;
 		}
 		}
 		temp_list = temp_list->name_next;
 		temp_list = temp_list->name_next;
 	}
 	}
 
 
 	terminate (result, "DISK %s%s\n", state_text (result), output, details);
 	terminate (result, "DISK %s%s\n", state_text (result), output, details);
+	return STATE_UNKNOWN;
 }
 }
 
 
 
 
@@ -288,7 +299,6 @@ process_arguments (int argc, char **argv)
 	int c;
 	int c;
 	struct name_list *se;
 	struct name_list *se;
 	struct name_list **pathtail = &path_select_list;
 	struct name_list **pathtail = &path_select_list;
-	struct name_list **devtail = &dev_select_list;
 	struct name_list **fstail = &fs_exclude_list;
 	struct name_list **fstail = &fs_exclude_list;
 	struct name_list **dptail = &dp_exclude_list;
 	struct name_list **dptail = &dp_exclude_list;
 	struct name_list *temp_list;
 	struct name_list *temp_list;
@@ -343,39 +353,39 @@ process_arguments (int argc, char **argv)
 				break;
 				break;
 			}
 			}
 			else {
 			else {
-				usage ("Timeout Interval must be an integer!\n");
+				usage (_("Timeout Interval must be an integer!\n"));
 			}
 			}
-		case 'w':									/* warning time threshold */
+		case 'w':									/* warning threshold */
 			if (is_intnonneg (optarg)) {
 			if (is_intnonneg (optarg)) {
 				w_df = atoi (optarg);
 				w_df = atoi (optarg);
 				break;
 				break;
 			}
 			}
 			else if (strpbrk (optarg, ",:") &&
 			else if (strpbrk (optarg, ",:") &&
 							 strstr (optarg, "%") &&
 							 strstr (optarg, "%") &&
-							 sscanf (optarg, "%d%*[:,]%f%%", &w_df, &w_dfp) == 2) {
+							 sscanf (optarg, "%d%*[:,]%lf%%", &w_df, &w_dfp) == 2) {
 				break;
 				break;
 			}
 			}
-			else if (strstr (optarg, "%") && sscanf (optarg, "%f%%", &w_dfp) == 1) {
+			else if (strstr (optarg, "%") && sscanf (optarg, "%lf%%", &w_dfp) == 1) {
 				break;
 				break;
 			}
 			}
 			else {
 			else {
-				usage ("Warning threshold must be integer or percentage!\n");
+				usage (_("Warning threshold must be integer or percentage!\n"));
 			}
 			}
-		case 'c':									/* critical time threshold */
+		case 'c':									/* critical threshold */
 			if (is_intnonneg (optarg)) {
 			if (is_intnonneg (optarg)) {
 				c_df = atoi (optarg);
 				c_df = atoi (optarg);
 				break;
 				break;
 			}
 			}
 			else if (strpbrk (optarg, ",:") &&
 			else if (strpbrk (optarg, ",:") &&
 							 strstr (optarg, "%") &&
 							 strstr (optarg, "%") &&
-							 sscanf (optarg, "%d%*[,:]%f%%", &c_df, &c_dfp) == 2) {
+							 sscanf (optarg, "%d%*[,:]%lf%%", &c_df, &c_dfp) == 2) {
 				break;
 				break;
 			}
 			}
-			else if (strstr (optarg, "%") && sscanf (optarg, "%f%%", &c_dfp) == 1) {
+			else if (strstr (optarg, "%") && sscanf (optarg, "%lf%%", &c_dfp) == 1) {
 				break;
 				break;
 			}
 			}
 			else {
 			else {
-				usage ("Critical threshold must be integer or percentage!\n");
+				usage (_("Critical threshold must be integer or percentage!\n"));
 			}
 			}
 		case 'u':
 		case 'u':
 			if (! strcmp (optarg, "bytes")) {
 			if (! strcmp (optarg, "bytes")) {
@@ -394,7 +404,7 @@ process_arguments (int argc, char **argv)
 				mult = (unsigned long)1024 * 1024 * 1024 * 1024;
 				mult = (unsigned long)1024 * 1024 * 1024 * 1024;
 				units = "TB";
 				units = "TB";
 			} else {
 			} else {
-				terminate (STATE_UNKNOWN, "unit type %s not known\n", optarg);
+				terminate (STATE_UNKNOWN, _("unit type %s not known\n"), optarg);
 			}
 			}
 			break;
 			break;
 		case 'k': /* display mountpoint */
 		case 'k': /* display mountpoint */
@@ -458,7 +468,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			print_help ();
 			exit (STATE_OK);
 			exit (STATE_OK);
 		case '?':									/* help */
 		case '?':									/* help */
-			usage ("check_disk: unrecognized option\n");
+			usage (_("check_disk: unrecognized option\n"));
 			break;
 			break;
 		}
 		}
 	}
 	}
@@ -485,7 +495,11 @@ process_arguments (int argc, char **argv)
 	if (path_select_list) {
 	if (path_select_list) {
 		temp_list = path_select_list;
 		temp_list = path_select_list;
 		while (temp_list) {
 		while (temp_list) {
-			if (validate_arguments (temp_list->w_df, temp_list->c_df, temp_list->w_dfp, temp_list->c_dfp, temp_list->name) == ERROR)
+			if (validate_arguments (temp_list->w_df,
+				                      temp_list->c_df,
+				                      temp_list->w_dfp,
+				                      temp_list->c_dfp,
+				                      temp_list->name) == ERROR)
 				result = ERROR;
 				result = ERROR;
 			temp_list = temp_list->name_next;
 			temp_list = temp_list->name_next;
 		}
 		}
@@ -496,34 +510,33 @@ process_arguments (int argc, char **argv)
 }
 }
 
 
 
 
-void print_path (char *path) 
+void print_path (char *mypath) 
 {
 {
-	if (path)
-		printf (" for %s", path);
+	if (mypath)
+		printf (" for %s", mypath);
 	printf ("\n");
 	printf ("\n");
 }
 }
 
 
 int
 int
-validate_arguments (int w, int c, float wp, float cp, char *path)
+validate_arguments (int w, int c, double wp, double cp, char *mypath)
 {
 {
-	if (w < 0 && c < 0 && wp < 0 && cp < 0) {
-		printf ("INPUT ERROR: No thresholds specified");
-		print_path (path);
+	if (w < 0 && c < 0 && wp < 0.0 && cp < 0.0) {
+		printf (_("INPUT ERROR: No thresholds specified"));
+		print_path (mypath);
 		return ERROR;
 		return ERROR;
 	}
 	}
-	else if ((wp >= 0 || cp >= 0)
-					 && (wp < 0 || cp < 0 || wp > 100 || cp > 100
-							 || cp > wp)) {
-		printf
-			("INPUT ERROR: C_DFP (%f) should be less than W_DFP (%.1f) and both should be between zero and 100 percent, inclusive",
-			 cp, wp);
+	else if ((wp >= 0.0 || cp >= 0.0) &&
+	         (wp < 0.0 || cp < 0.0 || wp > 100.0 || cp > 100.0 || cp > wp)) {
+		printf (_("\
+INPUT ERROR: C_DFP (%f) should be less than W_DFP (%.1f) and both should be between zero and 100 percent, inclusive"),
+		        cp, wp);
 		print_path (path);
 		print_path (path);
 		return ERROR;
 		return ERROR;
 	}
 	}
 	else if ((w > 0 || c > 0) && (w < 0 || c < 0 || c > w)) {
 	else if ((w > 0 || c > 0) && (w < 0 || c < 0 || c > w)) {
-		printf
-			("INPUT ERROR: C_DF (%d) should be less than W_DF (%d) and both should be greater than zero",
-			 c, w);
+		printf (_("\
+INPUT ERROR: C_DF (%d) should be less than W_DF (%d) and both should be greater than zero"),
+		        c, w);
 		print_path (path);
 		print_path (path);
 		return ERROR;
 		return ERROR;
 	}
 	}
@@ -572,29 +585,3 @@ walk_name_list (struct name_list *list, const char *name)
 	}
 	}
 	return FALSE;
 	return FALSE;
 }
 }
-
-
-
-
-void
-print_help (void)
-{
-	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");
-	printf (options);
-	printf (notes);
-	printf ("Examples:\n%s", examples);
-	support ();
-}
-
-void
-print_usage (void)
-{
-	printf
-		("Usage: %s %s\n"
-		 "       %s (-h|--help)\n"
-		 "       %s (-V|--version)\n", progname, option_summary, progname, progname);
-}

+ 4 - 0
plugins/utils.h

@@ -122,3 +122,7 @@ char *state_text (int result);
     Response time to result in critical status (seconds)\n\
     Response time to result in critical status (seconds)\n\
  -t, --timeout=INTEGER\n\
  -t, --timeout=INTEGER\n\
     Seconds before connection times out (default: %d)\n"
     Seconds before connection times out (default: %d)\n"
+
+#define TIMEOUT "\
+ -t, --timeout=INTEGER\n\
+    Seconds before connection times out (default: %d)\n"