shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como verificar se um compartilhamento nfs está ok?


From: Lawrence Waclawiak
Subject: Re: [shell-script] Como verificar se um compartilhamento nfs está ok?
Date: Sun, 07 Nov 2010 11:25:43 -0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.12) Gecko/20100915 Thunderbird/3.0.8

O que pedi é sim ajuda com shell script e não com administração de NFS.
Fazemos scripts para criar soluções e isso inclui sim administrar serviços como o NFS e outros, desde que eu não venha aqui e pergunte "Como configuro o servidor NFS para que..." estarei falando de script. Como a MODERAÇÃO interpretou de forma errônea e já se passou um certo tempo consegui uma solução que segue abaixo para conhecimento dos demais.


funcao(){
    touch "$1"/$Arquivo >> /dev/null&
    sleep 5
    if ! ps -p "$!" >> /dev/null;then
        rm -f "$1"/$Arquivo
        return 0
    else
        kill - 9 "$!" >> /dev/null
        return 1
    fi
}

main(){
    if funcao "/ponto/de/montagem";then
        echo "Permissões de escrita garantidas"
    else
        echo "Sem permissão de escrita"
    fi
}

main


Dessa forma dentro da função MAIN disparo a função "funcao" testando seu retorno com o IF. Na função "funcao" disparo o comando touch em segundo plano tentando criar um arquivo no compartilhamento NFS, aguardo 5 segundos e verifico se o processo do touch ainda está vivo utilizando a variável especial $! que contém o PID do ultimo job disparado em segundo plano, nesse caso o touch. Se o processo não existir é porque ele não travou e completou corretamente assim removo o arquivo criado e retorno 0(Zero), se ele existir mato ele e retorno 1(Um). Ou seja, resolvido utilizando shell script, não modifiquei nada no servidor NFS.

Essa solução me pareceu funcionar corretamente, porém peço novamente a avaliação dos colegas para saber se não deixei nenhum "furo" nessa solução.

Grato,
Lawrence Waclawiak






reply via email to

[Prev in Thread] Current Thread [Next in Thread]