I wrote a simple script to check to see if a specific mountpoint on a Linux system is still live. It does this by trying to read a specific file on the share, and if it cannot, write the event to a log, unmount, and then re-mount the folder. The need arose for instances where a file server has been rebooted and the linux system loses the connection to the share. This way it will automatically re-mount.
Modify the variables section as needed and then have a cron job run the script as root at whatever interval you want. Enjoy.
#!/bin/bash
#Script to monitor mount directories to ensure they are properly mounted
#Place a file with the word "mounted" in it inside all mounted directories
#The script will try to read the file and attempt to unmount and remount the folder if it fails to read the file
#Updated 8/30/2016 by Nicholas Jeppson
#---------Variable section------------#
#Place mount folder locations here, separated by space
#Paths containing spaces need to have quotes around them
LOCATIONS=(/home/njeppson /home/njeppson/Desktop)
#Name of file to try to read
TEST_FILENAME="mountcheck"
#---------End Variable Section--------#
#-----Do not edit below this line-----#
#Read file, if contents don't contain "mounted" then attempt to unmount and re-mount the folder, output attempt to /var/log/mountcheck
for FOLDER in "${LOCATIONS[@]}"; do
if [[ $(cat $FOLDER/$TEST_FILENAME) != "mounted" ]]; then
echo "$(date "+%b %d %T") $(hostname) $FOLDER Not mounted, remounting." >> /var/log/mountcheck
umount $FOLDER
mount $FOLDER
fi
done