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.

Gostou?

Imprimir esta página Imprimir esta página

Leia também: