Já existem muitas ferramentas disponíveis que fazem isso, como o Munin, o Nagios, etc. Não vejo por que recriar a roda, mas se você quiser uma solução shell, aqui vai:
#!/bin/bash
logfile="/var/log/up-or-down.log";
ip_address_for_testing="192.168.1.10";
while [[ true ]]; do
ping -c 5 $ip_address_for_testing;
if [[ $? -eq 0 ]]; then
echo "IP status for ${ip_address_for_testing}: UP" >> $logfile;
else
echo "IP status for ${ip_address_for_testing}: DOWN" >> $logfile;
fi;
sleep 5;
done;
O exemplo acima enviará 5 ECHO REQUESTS para o host definido em $ ip_address_for_testing e se tudo correr bem, ele irá gravar $ logfile se estiver ativo ou inativo. Salve-o em um arquivo, dê a ele permissões de execução com chmod e chame-o através de /etc/rc.local ou /etc/rcS.d (você escolhe a segunda opção, você terá que salvá-lo em / etc / init .d e criar um link simbólico para ele) se você quiser iniciá-lo no tempo de inicialização.
Cya!