Escribir estado en línea/fuera de línea en el archivo de registro

Escribir estado en línea/fuera de línea en el archivo de registro

Estoy buscando una manera de registrar el estado en línea/fuera de línea de un host Linux en un archivo de registro localmente.

Intenté usarlo pingpara esto pero no registró tiempos de espera/paquetes eliminados, solo muestra transmisiones exitosas: 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 lo tanto, tengo que mirar atentamente los números de solicitud para detectar estados fuera de línea.

¿Alguien conocía una mejor manera de hacerlo o puede nombrar una herramienta para esto?

Gracias de antemano.

Respuesta1

Ya hay muchas herramientas disponibles que hacen eso, como Munin, Nagios, etc. No veo por qué recrear la rueda, pero si quieres una solución shell, aquí va:

#!/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;

El ejemplo anterior enviará 5 SOLICITUDES DE ECO al host definido en $ip_address_for_testing y si todo va bien, escribirá en $logfile si está arriba o abajo. Guárdalo en un archivo, dale permisos de ejecución con chmod y llámalo a través de /etc/rc.local o /etc/rcS.d (si eliges la segunda opción, tendrás que guardarlo en /etc/init .d y cree un enlace simbólico) si desea iniciarlo en el momento del arranque.

¡Cya!

información relacionada