Escreva estado on-line / off-line no arquivo de log

1

Estou procurando uma maneira de registrar localmente o estado online / offline de um host Linux em um arquivo de log.

Eu tentei usar ping para isso, mas ele não registrou os tempos limite / pacotes perdidos, mas mostra apenas transmissões bem-sucedidas: ping -D 8.8.8.8 | awk 'NR>1 { printf strftime("%c", $0) "%s",$2; }' RS=[ FS=]

Mi 14 Okt 2015 13:03:06 CEST 64 bytes from 8.8.8.8: icmp_req=155 ttl=55 time=18.4 ms
Mi 14 Okt 2015 13:03:07 CEST 64 bytes from 8.8.8.8: icmp_req=156 ttl=55 time=18.6 ms
Mi 14 Okt 2015 13:03:08 CEST 64 bytes from 8.8.8.8: icmp_req=157 ttl=55 time=18.4 ms
Mi 14 Okt 2015 13:05:19 CEST 64 bytes from 8.8.8.8: icmp_req=244 ttl=55 time=18.4 ms
Mi 14 Okt 2015 13:05:20 CEST 64 bytes from 8.8.8.8: icmp_req=245 ttl=55 time=18.4 ms

Por isso, tenho de analisar cuidadosamente os números de pedidos para detetar estados offline.

Alguém sabia uma maneira melhor de fazer isso ou pode nomear uma ferramenta para isso?

Obrigado antecipadamente.

    
por High Ball 14.10.2015 / 13:16

1 resposta

0

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!

    
por 14.10.2015 / 14:12