diff options
author | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-03-17 20:21:58 +0100 |
---|---|---|
committer | Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> | 2025-03-17 20:21:58 +0100 |
commit | 7b53cbbd265ed135941bf59da77ed22b8664b6eb (patch) | |
tree | 5e1948e583d366ed7588941b5b6e9148d0d4aecb /plugins | |
parent | 4fb7fb05b672febfdfa69381f7f403dc872c7aa6 (diff) | |
download | monitoring-plugins-7b53cbbd265ed135941bf59da77ed22b8664b6eb.tar.gz |
check_disk: Little fixes and improvements
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/check_disk.c | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index e16c453d..a333a8b5 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -101,9 +101,9 @@ static void set_all_thresholds(struct parameter_list *path); | |||
101 | static void print_help(void); | 101 | static void print_help(void); |
102 | void print_usage(void); | 102 | void print_usage(void); |
103 | static double calculate_percent(uintmax_t /*value*/, uintmax_t /*total*/); | 103 | static double calculate_percent(uintmax_t /*value*/, uintmax_t /*total*/); |
104 | static bool stat_path(struct parameter_list *p); | 104 | static bool stat_path(struct parameter_list * /*parameters*/); |
105 | static void get_stats(struct parameter_list *p, struct fs_usage *fsp); | 105 | static void get_stats(struct parameter_list * /*parameters*/, struct fs_usage *fsp); |
106 | static void get_path_stats(struct parameter_list *p, struct fs_usage *fsp); | 106 | static void get_path_stats(struct parameter_list * /*parameters*/, struct fs_usage *fsp); |
107 | 107 | ||
108 | static char *units; | 108 | static char *units; |
109 | static uintmax_t mult = 1024 * 1024; | 109 | static uintmax_t mult = 1024 * 1024; |
@@ -624,7 +624,7 @@ int process_arguments(int argc, char **argv) { | |||
624 | case 'P': | 624 | case 'P': |
625 | display_inodes_perfdata = true; | 625 | display_inodes_perfdata = true; |
626 | break; | 626 | break; |
627 | case 'p': /* select path */ | 627 | case 'p': /* select path */ { |
628 | if (!(warn_freespace_units || crit_freespace_units || warn_freespace_percent || crit_freespace_percent || | 628 | if (!(warn_freespace_units || crit_freespace_units || warn_freespace_percent || crit_freespace_percent || |
629 | warn_usedspace_units || crit_usedspace_units || warn_usedspace_percent || crit_usedspace_percent || | 629 | warn_usedspace_units || crit_usedspace_units || warn_usedspace_percent || crit_usedspace_percent || |
630 | warn_usedinodes_percent || crit_usedinodes_percent || warn_freeinodes_percent || crit_freeinodes_percent)) { | 630 | warn_usedinodes_percent || crit_usedinodes_percent || warn_freeinodes_percent || crit_freeinodes_percent)) { |
@@ -656,7 +656,7 @@ int process_arguments(int argc, char **argv) { | |||
656 | np_set_best_match(se, mount_list, exact_match); | 656 | np_set_best_match(se, mount_list, exact_match); |
657 | 657 | ||
658 | path_selected = true; | 658 | path_selected = true; |
659 | break; | 659 | } break; |
660 | case 'x': /* exclude path or partition */ | 660 | case 'x': /* exclude path or partition */ |
661 | np_add_name(&dp_exclude_list, optarg); | 661 | np_add_name(&dp_exclude_list, optarg); |
662 | break; | 662 | break; |
@@ -778,6 +778,7 @@ int process_arguments(int argc, char **argv) { | |||
778 | } | 778 | } |
779 | 779 | ||
780 | /* add parameter if not found. overwrite thresholds if path has already been added */ | 780 | /* add parameter if not found. overwrite thresholds if path has already been added */ |
781 | struct parameter_list *se = NULL; | ||
781 | if (!(se = np_find_parameter(path_select_list, me->me_mountdir))) { | 782 | if (!(se = np_find_parameter(path_select_list, me->me_mountdir))) { |
782 | se = np_add_parameter(&path_select_list, me->me_mountdir); | 783 | se = np_add_parameter(&path_select_list, me->me_mountdir); |
783 | } | 784 | } |
@@ -804,7 +805,7 @@ int process_arguments(int argc, char **argv) { | |||
804 | case 'M': /* display mountpoint */ | 805 | case 'M': /* display mountpoint */ |
805 | display_mntp = true; | 806 | display_mntp = true; |
806 | break; | 807 | break; |
807 | case 'C': | 808 | case 'C': { |
808 | /* add all mount entries to path_select list if no partitions have been explicitly defined using -p */ | 809 | /* add all mount entries to path_select list if no partitions have been explicitly defined using -p */ |
809 | if (!path_selected) { | 810 | if (!path_selected) { |
810 | struct parameter_list *path; | 811 | struct parameter_list *path; |
@@ -832,7 +833,7 @@ int process_arguments(int argc, char **argv) { | |||
832 | 833 | ||
833 | path_selected = false; | 834 | path_selected = false; |
834 | group = NULL; | 835 | group = NULL; |
835 | break; | 836 | } break; |
836 | case 'V': /* version */ | 837 | case 'V': /* version */ |
837 | print_revision(progname, NP_VERSION); | 838 | print_revision(progname, NP_VERSION); |
838 | exit(STATE_UNKNOWN); | 839 | exit(STATE_UNKNOWN); |
@@ -843,18 +844,31 @@ int process_arguments(int argc, char **argv) { | |||
843 | usage(_("Unknown argument")); | 844 | usage(_("Unknown argument")); |
844 | } | 845 | } |
845 | } | 846 | } |
847 | if (verbose > 0) { | ||
848 | printf("ping\n"); | ||
849 | } | ||
846 | 850 | ||
847 | /* Support for "check_disk warn crit [fs]" with thresholds at used% level */ | 851 | /* Support for "check_disk warn crit [fs]" with thresholds at used% level */ |
848 | int index = optind; | 852 | int index = optind; |
853 | |||
849 | if (warn_usedspace_percent == NULL && argc > index && is_intnonneg(argv[index])) { | 854 | if (warn_usedspace_percent == NULL && argc > index && is_intnonneg(argv[index])) { |
855 | if (verbose > 0) { | ||
856 | printf("Got an positional warn threshold: %s\n", argv[index]); | ||
857 | } | ||
850 | warn_usedspace_percent = argv[index++]; | 858 | warn_usedspace_percent = argv[index++]; |
851 | } | 859 | } |
852 | 860 | ||
853 | if (crit_usedspace_percent == NULL && argc > index && is_intnonneg(argv[index])) { | 861 | if (crit_usedspace_percent == NULL && argc > index && is_intnonneg(argv[index])) { |
862 | if (verbose > 0) { | ||
863 | printf("Got an positional crit threshold: %s\n", argv[index]); | ||
864 | } | ||
854 | crit_usedspace_percent = argv[index++]; | 865 | crit_usedspace_percent = argv[index++]; |
855 | } | 866 | } |
856 | 867 | ||
857 | if (argc > index) { | 868 | if (argc > index) { |
869 | if (verbose > 0) { | ||
870 | printf("Got an positional filesystem: %s\n", argv[index]); | ||
871 | } | ||
858 | struct parameter_list *se = np_add_parameter(&path_select_list, strdup(argv[index++])); | 872 | struct parameter_list *se = np_add_parameter(&path_select_list, strdup(argv[index++])); |
859 | path_selected = true; | 873 | path_selected = true; |
860 | set_all_thresholds(se); | 874 | set_all_thresholds(se); |
@@ -1081,7 +1095,8 @@ void get_stats(struct parameter_list *parameters, struct fs_usage *fsp) { | |||
1081 | parameters->best_match->me_mountdir = parameters->best_match->me_devname = parameters->group; | 1095 | parameters->best_match->me_mountdir = parameters->best_match->me_devname = parameters->group; |
1082 | } | 1096 | } |
1083 | /* finally calculate percentages for either plain FS or summed up group */ | 1097 | /* finally calculate percentages for either plain FS or summed up group */ |
1084 | parameters->dused_pct = calculate_percent(parameters->used, parameters->used + parameters->available); /* used + available can never be > uintmax */ | 1098 | parameters->dused_pct = |
1099 | calculate_percent(parameters->used, parameters->used + parameters->available); /* used + available can never be > uintmax */ | ||
1085 | parameters->dfree_pct = 100.0 - parameters->dused_pct; | 1100 | parameters->dfree_pct = 100.0 - parameters->dused_pct; |
1086 | parameters->dused_inodes_percent = calculate_percent(parameters->inodes_total - parameters->inodes_free, parameters->inodes_total); | 1101 | parameters->dused_inodes_percent = calculate_percent(parameters->inodes_total - parameters->inodes_free, parameters->inodes_total); |
1087 | parameters->dfree_inodes_percent = 100 - parameters->dused_inodes_percent; | 1102 | parameters->dfree_inodes_percent = 100 - parameters->dused_inodes_percent; |