Check a share is mounted on Linux

Bash script for Linux to check a share is mounted, attempt recovery and remount.

In it’s current form, only outputs anything if action is required. This make it suitable for cron (for my purposes anyway) so that I only get notified if something happened, currently used to make sure a share exists before running a nightly backup.

#!/usr/bin/env sh

# check if share is mounted, attempt recovery and remount

if [ -z "$1" ]; then
    echo "Usage: $0 /mount/point/to/check"
    exit 0
fi

DIR="$1"
if grep -qs "$DIR" /proc/mounts; then   
    # echo "$DIR is mounted."
    exit 0
else
    echo "$DIR is not mounted."
    if [ "$(ls -A $DIR)" ]; then
        NEWDIR="$DIR-`date +%F-%k-%M-%S`"
        echo "Files exist so renaming $DIR -> $NEWDIR"
        mv "$DIR" "$NEWDIR"
        mkdir -p "$DIR"
    fi
    echo "Attempt remount..."
    mount -a
fi

Also available as a Gist

 

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses Akismet to reduce spam. Learn how your comment data is processed.