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