From 02528416614037640bf882e93218c3981567ff5e Mon Sep 17 00:00:00 2001
From: root <root@frhb10854ds.ikexpress.com>
Date: Fri, 7 Dec 2018 13:02:39 +0100
Subject: [PATCH] Added check_mountpoints script

---
 check_mountpoints.sh | 104 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100755 check_mountpoints.sh

diff --git a/check_mountpoints.sh b/check_mountpoints.sh
new file mode 100755
index 0000000..8449048
--- /dev/null
+++ b/check_mountpoints.sh
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+PROGNAME=$(basename $0)
+
+STATE_OK=0
+STATE_WARNING=1
+STATE_CRITICAL=2
+
+INVERSE=0
+
+FSTAB_STATUS=0
+MOUNTED_STATUS=0
+
+MOUNTS=/proc/mounts
+MTAB=/etc/mtab
+FSTAB=/etc/fstab
+
+function usage() {
+        echo "Usage: $PROGNAME \$mountpoint [\$mountpoint2 ...]"
+        echo "Usage: $PROGNAME -h,--help"
+        echo "Options:"
+        echo " -I          Inverse results (OK if not mounted, WARNING if mounted)"
+        echo " MOUNTPOINT  list of mountpoint to check. MANDATORY"
+}
+
+function print_help() {
+        echo ""
+        echo "This module checks if a mountpoint is defined in ${FSTAB}, and whether it is mounted"
+        echo "by checking ${MTAB}, ${MOUNTS} and mountpoint program"
+        echo ""
+        usage
+        echo ""
+}
+
+# --------------------------------------------------------------------
+# startup checks
+# --------------------------------------------------------------------
+
+if [ $# -eq 0 ]; then
+        usage
+        exit $STATE_CRITICAL
+fi
+
+while [ "$1" != "" ]
+do
+        case "$1" in
+                -I) INVERSE=1; shift;;
+                /*) MP="$1"; shift;;
+                *) usage; exit $STATE_UNKNOWN;;
+        esac
+done
+
+if [ -z "${MP}" ]; then
+        echo "ERROR: no mountpoint given!"
+        usage
+        exit $STATE_UNKNOWN
+fi
+
+## check FSTAB mounts
+if [ ! -z "$( grep ${MP} ${FSTAB} )" ]
+then
+    FSTAB_STATUS=1
+fi
+
+# check MOUNTS mounts
+if [ ! -z "$( grep ${MP} ${MOUNTS} )" ]
+then
+    # check MTAB mounts
+    if [ ! -z "$( grep ${MP} ${MTAB} )" ]
+    then
+        ## check mountpoint
+        if [ $( mountpoint -q ${MP} ; echo $? ) -eq 0 ]
+        then
+            MOUNTED_STATUS=1
+        fi
+    fi
+fi
+
+if [ $MOUNTED_STATUS -eq 0 ]
+then
+    if [ $INVERSE -eq 0 ]
+    then
+        echo "CRITICAL: ${MP} not mounted"
+        exit $STATE_CRITICAL
+    else
+        echo "OK: ${MP} not mounted"
+        exit $STATE_OK
+    fi
+else
+    if [ $FSTAB_STATUS -eq 0 ]
+    then
+        echo "WARNING: ${MP} mounted but not defined in fstab"
+        exit $STATE_WARNING
+    else
+        if [ $INVERSE -eq 0 ]
+        then
+            echo "OK: ${MP} mounted"
+            exit $STATE_OK
+        else
+            echo "WARNING: ${MP} mounted"
+            exit $STATE_WARNING
+        fi
+    fi
+fi
-- 
GitLab