Como verificar se o diretório está montado no disco X e monte-o se não estiver

2

Estou tentando escrever um script para fazer backup dos meus dados. Eu não sei muito sobre isso, então eu poderia tomar uma abordagem errada, mas o que eu estou tentando fazer é usar rsync -avh várias vezes para cada diretório que eu quero fazer backup. No entanto, defino o destino como um valor codificado - ~/sbackup/ . Agora quero que meu script verifique antes de executar se a pasta estiver montada e, se não estiver, tente montá-la. Portanto, a lógica do script ficaria assim:

1) Veja se meu disco USB está montado em ~/sbackup/ . (O disco - seria bom se houvesse uma maneira de impedir a instalação de outro dispositivo USB).

2) Se não é tentar montá-lo lá. Se não conseguir, escreva uma mensagem de erro e saia.

3) Se estiver montado, execute o resto do script.

Agora posso escrever mensagens de erro e tal, mas não tenho certeza sobre o primeiro passo e a primeira parte do segundo passo.

    
por MatthewRock 05.12.2015 / 14:10

2 respostas

3

se você tiver um comando mountpoint :

mountpoint -q /local/mount/point || mount ...
    
por 05.12.2015 / 17:20
1

Quando executado sem argumentos, mount retorna uma lista de partições montadas e algumas informações sobre elas, incluindo seus pontos de montagem. Portanto, você pode apenas grep para o ponto de montagem na saída de montagem e agir de acordo:

if ! mount | grep -q sbackup; then
    mount /dev/sdb1 /home/matthew/sbackup || echo "Couldn't mount" && exit
fi

Altere /dev/sdb para qualquer partição do seu USB e matthew para o seu nome de usuário. Execute o script com sudo para poder montar.

    
por 05.12.2015 / 15:50