Este shell-script verifica se uma máquina está conectada na rede, e caso não esteja, reconecta-se de alguma forma. Para funcionar, além do script é necessário também o agendador de tarefas crontab.
O script, checkConn.sh:
#!/bin/bash # # IP de Teste TEST_IP="74.125.47.147" # UDHCPC UDHCPC=/sbin/udhcpc if ! `ping -c1 $TEST_IP > /dev/null 2>&1`; then $UDHCPC -i eth0 -q else exit 0 fi
O TEST_IP é um IP da Internet para que o ping seja feito. Neste exemplo, usei um dos IPs do Google. Também, neste caso utilizei o cliente DHCP UDHCPC.
Em resumo, este script pinga um IP e caso não haja resposta, executa o udhcp pedindo um novo IP. É uma solução simples e não é totalmente segura. Por exemplo, se o IP que tentamos pingar está fora, ao invés da própria máquina, ele vai executar mesmo assim.
Com pequenas alterações, podemos colocar o dhclient para ser usado, ao invés do udhcpc. Ou também podemos colocar depois do “if” quaisquer comandos (como por exemplo, um log) que acontecerão quando a conexão falhar.
Escolha um intervalo para ficar executando este script. Aqui colocarei o script para ser executado de 2 em 2 minutos. Para fazer o agendamento, usamos o crontab executando como root “crontab -e” ou (2a. opção) editando o arquivo “/etc/crontab”. A linha:
*/2 * * * * /usr/local/bin/checkConn.sh
…fará isso.