#!/bin/sh # # Verify that given mountpoints have 'read-write' option. 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)) else echo "OK - $mountpoint" >> "$output" 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 mountpoint%s have 'read-write' option\n\n" \ "$ok_count" "$total_count" "$plural" cat "$output" exit 0 else printf "CRITICAL - %d/%d mountpoint%s don't have 'read-write' option\n\n" \ "$critical_count" "$total_count" "$plural" cat "$output" exit 2 fi