#!/bin/bash # Copyright (C) 2016 Mike Gabriel # # File: check_fs_ro.sh # Author: Mike Gabriel # Date: 06 Sep 2016 # Version: 0.11 # LICENSE: MIT/Expat set -f shopt -u extglob # Program args ME="$0" CMDLINE="$@" NAGOK=0 NAGWARN=1 NAGCRIT=2 NAGUNKN=3 usage() { echo "Check that ext[2|3|4], btrfs or xfs filesystems are not read-only." } parse_options() { local new set -- $CMDLINE while true do case $1 in #-v) shift ; gVersion=$1 #;; -h) usage ; exit 0 ;; ?*) echo "Syntax error." ; exit 1 ;; esac shift 1 || break done } main() { parse_options retval=$NAGOK grep -E '^.*\ .*\ (ext.*|btrfs|xfs)\ ro,.*$' /proc/mounts | while read fs; do rofs=`echo $fs | awk '{ print $2; }'` echo "CRITICAL: $rofs is a read-only filesystem." done if ! grep -E '^.*\ .*\ (ext.*|btrfs|xfs)\ ro,.*$' /proc/mounts 1>/dev/null; then echo "OK." else retval=$NAGCRIT fi exit $retval } main