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) char *details; char *perf; char *preamble; + char *flag_header; double inode_space_pct; double warning_high_tide; double critical_high_tide; @@ -353,18 +354,23 @@ main (int argc, char **argv) if (disk_result==STATE_OK && erronly && !verbose) continue; - xasprintf (&output, "%s %s %.0f %s (%.0f%%", - output, + if(disk_result && verbose >= 1) { + xasprintf(&flag_header, " %s [", state_text (disk_result)); + } else { + xasprintf(&flag_header, ""); + } + xasprintf (&output, "%s%s %s %.0f %s (%.0f%%", + output, flag_header, (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, path->dfree_units, units, path->dfree_pct); if (path->dused_inodes_percent < 0) { - xasprintf(&output, "%s inode=-);", output); + xasprintf(&output, "%s inode=-)%s;", output, (disk_result ? "]" : "")); } else { - xasprintf(&output, "%s inode=%.0f%%);", output, path->dfree_inodes_percent ); + xasprintf(&output, "%s inode=%.0f%%)%s;", output, path->dfree_inodes_percent, ((disk_result && verbose >= 1) ? "]" : "")); } - + free(flag_header); /* TODO: Need to do a similar debug line xasprintf (&details, _("%s\n\ %.0f of %.0f %s (%.0f%% inode=%.0f%%) free on %s (type %s mounted on %s) warn:%lu crit:%lu warn%%:%.0f%% crit%%:%.0f%%"), |