Gostaria apenas de desmontar, usando o sinalizador -l. Isso removerá o ponto de montagem do sistema de arquivos (portanto, nenhuma nova operação poderá ser iniciada) e concluirá a desmontagem adequada quando não estiver mais ocupada.
#!/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/
você pode lsof ver se tem algum descritor de arquivo aberto
você pode usar "fusor -m mountpoint" para ver se alguém está acessando o caminho.
Deixe umount fazer o trabalho para você:
while ! $(umount /mnt/tera_nas/ 2>/dev/null)
do
echo "not yet"
sleep 5m
done
echo "now it is"
Você poderia encurtar o tempo de sono, mas eu não o eliminaria. Ele serve um papel diferente aqui em sua pergunta.
Use automount
para fazer isso automaticamente, o ponto de montagem /mnt/tera_nas/home/
será montado automaticamente quando for acessado e, depois, desmontado assim que não for mais necessário.
# /etc/auto.master
/mnt auto.mnt
# /etc/auto.mnt
tera_nas -t cifs,password='' ://192.168.5.90/share
Então service autofs restart