se você tiver um comando mountpoint
:
mountpoint -q /local/mount/point || mount ...
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.
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.
Tags backup bash mount shell-script