linux se mais falhar por alguns IP's

1

Eu estou usando o seguinte código com if para montar. Ele funciona para alguns IPs, não funciona para alguns IPs, especialmente para declaração de falha.

Aqui está o código

is_mounted() {
    mount | grep -qohw "$1"
}


{
pass=
for ip in  123.456.789  223.456.789
do
    if is_mounted "$ip"
    then
        echo -e " STACK MOUNT \e[1;33mALREADY\e[00m AVAILABLE \e[1;33mPASSED\e[00m "
        pass=1
        break
    fi
    mount -t nfs -o ro,nolock "$ip:/opt/media/" /mount/stack &>/dev/null
    if is_mounted "$ip"
    then
        echo -e " STACK MOUNT AVAILABLE \e[1;33mPASSED\e[00m "
        pass=1
        break
    fi
done
[ "$pass" ] || echo -e " STACK MOUNT NOT AVAILABLE          \e[00;31mFAILED\e[00m"
} | tee /tmp/log

Estes são os IPs que estavam falhando 139.41.170.10, 197.21.82.10, 139.41.170.11, 197.21.82.11, 139.31.125.11. Idealmente, deve funcionar para qualquer IP. Também quero usar todos esses IP's ' para ip em 139.41.170.10 197.21.82.10 139.41.170.11 197.21.82.11 139.31.125.11 '. Qualquer sugestão AWK.

    
por user2692634 10.04.2014 / 20:34

1 resposta

2

Na sua função is_mounted , você deve testar a saída de mount para confirmar que algo foi retornado e, em seguida, retornar um 0 ou 1 de acordo.

Além disso, eu recomendo que você use os recursos de depuração incorporados em bash . Você verá rapidamente o que está errado, em vez de tentar depurá-lo.

Basta colocar um set -x no começo do bloco de código que você quer depurar e quando quiser desabilitá-lo, set +x .

Exemplo

... some code ...

set -x
... code to debug ...
set +x

... more code ...
    
por 10.04.2014 / 21:30