+ Responder ao Tópico



  1. #1

    Padrão Tratar erro mount

    Olá!

    Dando uma olhada no manual do mount eu verifiquei que posso tratar os erros de montagem.

    Isto é realmente interessante, pois como vou fazer transferência de arquivos entre máquinas em uma rede, posso ter problemas como a rede, ou com a própria máquina que vai receber, então desta forma devo ser avisado do erro e não tentar dar continuidade ao backup.

    O meu problema, é que eu não sei como eu faço para receber o código de retorno do mount.

  2. #2

    Padrão Consegui.

    Pessoal, para futuras pesquisas...

    Para você pegar o retorno de um comando no shell (bash), é só você pegar o valor da variável de ambiente $?.

    Código :
    mount -t smbfs -o username=user,password=senha //ip_maquina/dir /mnt/dir
    var=$?
    echo $var

    No exemplo acima ele vai me retornar se houve sucesso ou não na montagem do diretório da rede.

    Caso tenha sucesso ele me retorna 0, caso contrário ele me retorna o código do erro (ver man mount, ou o comando desejado).

    No meu caso eu usei uma condição para a continuação do script

    if [ $var -eq 0 ]
    then
    //faz o que tem que fazer
    else
    //diz que deu erro e cai fora
    fi

    []'s

  3. #3

    Padrão Mais um resposta

    Esta foi a resposta de Narumi do Rau-Tu Unicamp

    A primeira opção eu já havia testado e não deu certo. As outras eu não testei.

    respondida por narumi em 14/10/2005 12:41
    Olá Marco,

    Existem alguns meios. O mais trivial:
    msg=`mount /ponto_de_montagem argumentos`;
    Depois verificar o conteúdo de $msg.

    Método 2
    Basta uma pequena verificação:
    if [ ! -z "$(mount |grep "/ponto_de_montagem)" ]; then
    echo "já está montado!"
    else
    mount /ponto_de_montagem
    fi

    Método 3
    Você poderia dar um ls no /ponto_de_montagem e verificar
    se ele retorna algum arquivo, ou ainda poderia contar
    a quantidade de linhas do ls.

    []s,
    http://www.rau-tu.unicamp.br/linguag...&qid=5159&key=