summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Wagner <waja@cyconet.org>2013-10-01 02:12:33 +0200
committerJan Wagner <waja@cyconet.org>2014-07-29 22:06:25 +0200
commitcbb507c89feebf2fc46a6341584de0c730ecf458 (patch)
tree25321b95bd813e8533a0d44bff7b2fd1f3b3ede4
parent6f3d5825b203b75aef8d68bf0d117e7a1a4c0616 (diff)
downloadmonitoring-plugins-cbb507c89feebf2fc46a6341584de0c730ecf458.tar.gz
check_disk: show troubled partition in verbose mode
I'm submitting a small patch to check_disk that will show which partitions are actually causing the error state. This helps the human operator to quickly identify the exact issue. I made it so a single -v flag is required so it doesn't harm legacy code that may be parsing the original style of output. Thanks to Jason Benguerel. --- Closes #984 Closes #1182
-rw-r--r--plugins/check_disk.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index 925dfa82..0d73a4f1 100644
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
@@ -171,6 +171,7 @@ main (int argc, char **argv)
171 char *details; 171 char *details;
172 char *perf; 172 char *perf;
173 char *preamble; 173 char *preamble;
174 char *flag_header;
174 double inode_space_pct; 175 double inode_space_pct;
175 double warning_high_tide; 176 double warning_high_tide;
176 double critical_high_tide; 177 double critical_high_tide;
@@ -353,18 +354,23 @@ main (int argc, char **argv)
353 if (disk_result==STATE_OK && erronly && !verbose) 354 if (disk_result==STATE_OK && erronly && !verbose)
354 continue; 355 continue;
355 356
356 xasprintf (&output, "%s %s %.0f %s (%.0f%%", 357 if(disk_result && verbose >= 1) {
357 output, 358 xasprintf(&flag_header, " %s [", state_text (disk_result));
359 } else {
360 xasprintf(&flag_header, "");
361 }
362 xasprintf (&output, "%s%s %s %.0f %s (%.0f%%",
363 output, flag_header,
358 (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, 364 (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir,
359 path->dfree_units, 365 path->dfree_units,
360 units, 366 units,
361 path->dfree_pct); 367 path->dfree_pct);
362 if (path->dused_inodes_percent < 0) { 368 if (path->dused_inodes_percent < 0) {
363 xasprintf(&output, "%s inode=-);", output); 369 xasprintf(&output, "%s inode=-)%s;", output, (disk_result ? "]" : ""));
364 } else { 370 } else {
365 xasprintf(&output, "%s inode=%.0f%%);", output, path->dfree_inodes_percent ); 371 xasprintf(&output, "%s inode=%.0f%%)%s;", output, path->dfree_inodes_percent, ((disk_result && verbose >= 1) ? "]" : ""));
366 } 372 }
367 373 free(flag_header);
368 /* TODO: Need to do a similar debug line 374 /* TODO: Need to do a similar debug line
369 xasprintf (&details, _("%s\n\ 375 xasprintf (&details, _("%s\n\
370%.0f of %.0f %s (%.0f%% inode=%.0f%%) free on %s (type %s mounted on %s) warn:%lu crit:%lu warn%%:%.0f%% crit%%:%.0f%%"), 376%.0f of %.0f %s (%.0f%% inode=%.0f%%) free on %s (type %s mounted on %s) warn:%lu crit:%lu warn%%:%.0f%% crit%%:%.0f%%"),