diff --git a/nagios-nrpe/files/plugins/check_mount_rw b/nagios-nrpe/files/plugins/check_mount_rw index 06ffbd45..c26f8553 100755 --- a/nagios-nrpe/files/plugins/check_mount_rw +++ b/nagios-nrpe/files/plugins/check_mount_rw @@ -1,30 +1,40 @@ #!/bin/sh +# +# Verify that given mountpoints have 'read-write' option. -output=$(mktemp --tmpdir $(basename $0).XXXXXXXXXX) +output=$(mktemp --tmpdir $(basename "$0").XXXXXXXXXX) critical_count=0 ok_count=0 trap "rm -f $output" EXIT for mountpoint in $@; do + # We verify no mointpoints have 'read-only' option instead of checking + # for 'read-write' option, because there could be multiple device + # mounted on a sigle path. In that edge case only checking for the + # presence of the 'read-write' option would yeild a flase positive. if findmnt -O ro --noheadings "$mountpoint" 1>/dev/null 2>&1; then echo "CRITICAL - $mountpoint" >> "$output" - critical_count=$(( critical_count + 1)) + critical_count=$(( critical_count + 1)) else echo "OK - $mountpoint" >> "$output" - ok_count=$(( ok_count + 1)) + ok_count=$(( ok_count + 1)) fi done total_count=$(( ok_count + critical_count )) +plural='' +test "$total_count" -gt 1 && plural='s' + if [ $ok_count -eq $total_count ]; then - printf "OK - %d/%d no read-only mountpoint\n\n" "$ok_count" "$total_count" + printf "OK - %d/%d mountpoint%s have 'read-write' option\n\n" \ + "$ok_count" "$total_count" "$plural" cat "$output" exit 0 else - printf "CRITICAL - %d/%d read-only mountpoint\n\n" "$critical_count" "$total_count" + printf "CRITICAL - %d/%d mountpoint%s don't have 'read-write' option\n\n" \ + "$critical_count" "$total_count" "$plural" cat "$output" exit 2 fi -