up vote 2 down vote favorite
1
share [g+] share [fb]
#!/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/
link|improve this question
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
feedback

6 Answers

up vote 2 down vote accepted

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.

link|improve this answer
As per serverfault.com/users/1293/dennis-williamson: umount -l /mnt/tera_nas Did the trick for me. Thank you. – cgomezsilva Jun 30 '09 at 18:10
feedback

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

link|improve this answer
Agreed. I'd do lsof -n | grep mountpoint – Matt Simmons Jun 24 '09 at 17:41
feedback

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.

link|improve this answer
feedback

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

link|improve this answer
feedback

2Dennis Williamson:

I'd rather use

umount -l /mnt/tera_nas

at the end.

link|improve this answer
feedback

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

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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