Como detecto se uma unidade externa já está montada?

1

Eu tenho um script que faz backup de arquivos para a unidade externa a cada noite. O problema é que o Nautilus auto monta a unidade externa e, quando o script é executado, falha ao montar a unidade externa.

O ponto de montagem que o script cria em /mnt/mirror e o ponto de montagem que o Nautilus cria é /mnt/mirror_

Como faço para detectar se uma unidade externa já está montada?

    
por Hendré 13.10.2012 / 11:52

1 resposta

4

O Nautilus o monta em /mnt/mirror_ porque /mnt/mirror parece estar em uso.

  1. Você pode editar /etc/fstab e adicionar uma linha de forma que seu disco externo seja montado em /mnt/mirror todas as vezes.

    UUID="12345-67890" /mnt/mirror vfat defaults,auto,users,rw 0 0

    Altere o vfat se você usar outro sistema de arquivos.
    Você encontra seu UUID e tipo de sistema de arquivos com o comando sudo blkid .
    Depois de conectar, entre na entrada do nautilus ou monte usando o comando mount /mnt/mirror .
  2. Além disso, faça o seguinte: Use o comando mount que retorna as montagens atuais do seu sistema.

    Mostra todas as montagens atuais:
    mount

    Filtra as montagens que contêm a palavra mirror:
    mount | grep "mirror"

    Para usá-lo em um script, você pode fazer o seguinte:
    mounted=$(mount | grep "mirror")
    [ ! "$mounted" = "" ] && { echo -e "mirror mounts:\n$mounted"; }

    Não haverá saída se nenhuma montagem for encontrada contendo "espelho".

Notas :

  • Você também pode ter seu disco montado em vários pontos de montagem ao mesmo tempo, se estiver usando tipos de arquivos diferentes de ntfs . Você pode montá-lo em /mnt/mirror , independentemente de /mnt/mirror_ .
    Ao usar ntfs , primeiro desmonte a partição com sudo umount /mnt/mirror_ .
  • substitua "mirror" por outra coisa que você saiba sobre o dispositivo, por exemplo, "sdb".
  • verifique se alguma partição do último disco removível conectado à tomada está montada:
    last_dev=$(dmesg | grep "removable" | sed -e 's/.*\[//g' -e 's/\].*//' | tail -n1)
    mounted=$(mount | grep $last_dev) e echo -e "last removable disk mounts\n:$mounted"
por rosch 13.10.2012 / 12:59