Olá amigos.
Desenvolvi um script simples, para uma máquina que estava perdendo a rede wireless, devido a alguns problemas técnicos da placa wireless da máquina.
#!/bin/bash
vivo=`ping -c1 172.17.1.130 | grep received | cut -d" " -f4`
if [ "$vivo" = 1 ]; then
echo "AP01 NBCGIB está on-line"
else
echo "AP01 NBCGIB está inalcançável. Reiniciando serviço de rede"
/etc/init.d/net.wlan0 restart
fi
Contudo, na man page do ping, tem essa passagem:
...
If ping does not receive any reply packets at all it will exit with code 1. If a packet count and deadline are both specified, and fewer than count packets are received by the time the deadline has arrived, it will also exit with code 1. On other error it exits with code 2. Otherwise it exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.
...
Alguém pode me dizer como captar o exit code neste caso? .
Porque assim, eu não preciso executar um comando que vai retornar um valor, o qual eu guardo numa variável e depois comparo. Basta executar o ping e captar o código de saída e depois comparar.
Fiz alguns testes aqui, mas sem sucesso.
Ab, Duca.