Mounting Samba share whenever it's available, unmounting when it's not

I am trying setup permanent samba share mounts. That's not too hard using these instructions. But, I want them to

  1. Automatically remount whenever I join the network where these shares are available.
  2. Automatically unmount (or make access requests fail immediately instead of hanging) whenever I leave the network, i.e. avoid this automatically.

Googling suggests that AutoFS might be helpful. I gather it takes care of the 1. above but I am not sure about the 2.

The other questions about automated Samba mounts, i.e. How to mount a samba share permanently?, do not seem to address automatic remounts/unmounts, so I think this is not a duplicate.

Thanks.


Mounting Samba shares with CIFS:

Edit your /etc/fstab file to automatically mount your Samba shares:

//<server>/<share> <mount point> cifs rw,_netdev,user=<username>,password=<password>,uid=<uid>,gid=<gid> 0 0

Notice the _netdev option:

CIFS doesn't know about this option and will throw a warning about it, but you should leave it in.

This option ensures that the drives won't get mounted if you have no network or if you are on the wrong network.

It also makes sure your shares get mounted/unmounted when you switch networks. That's because Debian's if* scripts are triggered when your network configuration changes, and they watch all the filesystems with the _netdev option and do the right thing automagically.

Source

you can check man mount for more information about _netdev

To install the CIFS tools

sudo apt-get install cifs-utils

Write the scripts to mount and to unmount the share.

Place them in "/etc/network/if-up.d" and in "/etc/network/if-down.d" respectively. These are the locations for scripts that are run when the network connection is established or closed.

However, if you are looking for a particular server to come up or down online, the only solution I see is to make a cron job that checks the server connection periodically, keeps the state and runs the scripts accordingly.


AutoFS will work fine. It will auto mount when you access the share, remount if dropped and unmount when idle. When you log off and your processes are all terminated (due to log off) then the mount will fall after being idle for some time. You can configure the idle time.

See this how-to: http://www.howtoforge.com/accessing_windows_or_samba_shares_using_autofs