Como evitar montagens de ligação duplicadas?

0

Meu fstab contém isso:

192.168.0.8:/mnt/HD/HD_a2 /media/storage nfs rw,user,auto,hard,intr 0 0
/media/nas/Music /home/benubird/Music none bind,user,auto 0 0

Se eu executar mount /media/nas duas vezes, a segunda falha com a mensagem:

mount.nfs: /media/nas is busy or already mounted

qual é o comportamento correto. No entanto, se eu chamar mount na pasta encadernada duas vezes, ele monta duas vezes!

O mesmo ocorre se eu executar mount -a .

Como posso dizer ao fstab para montar a pasta apenas uma vez? Eu não sei qual será o efeito de montar o mesmo diretório duas vezes, mas imagino que provavelmente não seja bom.

Eu pensei em escrever um script de shell para chamar mount -l para verificar se a pasta está montada, então apenas montá-la se não, mas parece estranho para mim que o comando mount não tenha esta opção. / p>

Então, perguntas específicas:

· Por que montar pode detectar que uma montagem não vinculada já está montada, mas não pode detectar que uma montagem de ligação é, mesmo depois de ligar duas vezes ela aparece duas vezes em mount -l ?

· Como posso dizer ao etc/fstab para montar apenas se ainda não estiver montado?

· Como eu digo ao comando mount, para não montar se já estiver montado?

(estou usando o Ubuntu 14.04.2 LTS)

    
por Benubird 11.03.2015 / 09:01

1 resposta

2

Você simplesmente não deve chamar mount -a a menos que seja um script de inicialização ou algum outro programa do sistema. Por que você precisa disso?

mas sim, você pode testá-lo no shell script

mountpoint -q /home/benubird/Music && echo is mounted || echo not mounted

no entanto, não funciona muito bem com montagens de bind, mas você pode grep / proc / mounts:

function is_mounted() {
    dir=$(echo "$1" | sed -e 's/\/\/*/\//g; s/\/$//g;')
    cut -d ' ' -f 2 /proc/mounts  | grep "^$dir$" >/dev/null
}
    
por harvie.cz 30.03.2015 / 03:05