diff options
author | Jan Wagner <waja@cyconet.org> | 2013-10-01 02:12:33 +0200 |
---|---|---|
committer | Jan Wagner <waja@cyconet.org> | 2014-07-29 22:06:25 +0200 |
commit | cbb507c89feebf2fc46a6341584de0c730ecf458 (patch) | |
tree | 25321b95bd813e8533a0d44bff7b2fd1f3b3ede4 | |
parent | 6f3d5825b203b75aef8d68bf0d117e7a1a4c0616 (diff) | |
download | monitoring-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.c | 16 |
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%%"), |