2
#!/bin/sh

mount -t cifs //192.168.5.90/share -o password='' /mnt/tera_nas

rsync -av --super --delete --recursive /home/ /mnt/tera_nas/home/

# sleep 5m (i want to avoid using this)

# Bash shell snippet to check if mounted Samba share is not busy before issuing umount command

umount /mnt/tera_nas/
1
  • 1
    Are you asking for us to write the "Bash shell snippet to check if mounted Samba share is not busy before issuing umount command" portion of that script? – Evan Anderson Jun 24 '09 at 17:13
3

I would just lazy unmount it, using the -l flag. This will remove the mount point from the filesystem (so no new operations can start), and will finish the proper unmount once it is no longer busy.

1
3

you could lsof to see if it has any open file descriptors

1
  • Agreed. I'd do lsof -n | grep mountpoint – Matt Simmons Jun 24 '09 at 17:41
3

you could use "fuser -m mountpoint" to see if anyone is accessing the path.

2

Let umount do the work for you:

while ! $(umount /mnt/tera_nas/ 2>/dev/null)
do
    echo "not yet"
    sleep 5m
done
echo "now it is"

You could shorten the sleep time, but I wouldn't eliminate it. It serves a different role here than in your question.

1

2Dennis Williamson:

I'd rather use

umount -l /mnt/tera_nas

at the end.

1

Use automount to do this for you automatically, the mountpoint /mnt/tera_nas/home/ will be mounted automatically when it is accessed, then unmounted once it is no longer needed.

# /etc/auto.master
/mnt auto.mnt

# /etc/auto.mnt
tera_nas -t cifs,password='' ://192.168.5.90/share

Then service autofs restart

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.