2 votes

Surveillance de l'échec du ping

Le réseau tombe fréquemment en panne et je voudrais surveiller la sortie. J'ai essayé d'inventer une commande comme :

ping www.google.fr | while read pong; do echo "$(date): $pong"; done 1>/dev/null && 2> ~/ping_err.log

mais le STDERR est toujours redirigé vers STDOUT au lieu de ping_err.log

note : Je veux seulement STDERR dans le fichier (pas 2>&1)

Merci !

2voto

waltinator Points 32821

Plutôt que de répondre à votre stderr question de la redirection, je vais suggérer une meilleure façon (IMHO) :

Sur https://github.com/waltinator/net-o-matic.git - Vérifier si le réseau (WiFi) tombe en panne, puis faire une chose spécifiée par l'utilisateur pour le réparer.

Il y a un moyen de surveiller votre connexion :

  ip monitor address | \
    egrep --line-buffered \
    '^Deleted [[:digit:]]+: [[:alnum:]]+[[:space:]]+inet[[:space:]].* scope global ' | \
    while read line ; do
       ...

Mon net-o-matic script contient également un moyen de demander une fois :

function netstate () {
    # Return network state as "UP" or "DOWN"
    #Adjust how you decide net is UP/DOWN
    ip link show | egrep -q 'UP,LOWER_UP.* state UP'
    if [[ $? -eq 0 ]] ; then
        echo "UP"
    else
        echo "DOWN"
    fi
}

2voto

En utilisant votre code, cela semble fonctionner :

$ ping www.google.fr 2>&1 > /dev/null | while read pong; do echo "$(date): $pong" ; done 2>&1 > ping_err.log
[no output]
$ cat ping_err.log

vie jul  5 15:56:09 -03 2019: ping: sendmsg: La red es inaccesible
vie jul  5 15:56:10 -03 2019: ping: sendmsg: La red es inaccesible
vie jul  5 15:56:11 -...

1voto

croc Points 171

J'ai élargi un peu la réponse de @schrodigerscatcuriosity avec :

ping -i 10 -O -q 192.168.88.2 2>&1 | while read pong; do echo "$(date): $pong" ; done 2>&1 | tee ping_err.log
  • -i 10 attendre 10 secondes avant d'envoyer chaque paquet
  • -O pour enregistrer la réponse ICMP ECHO en suspens avant d'envoyer le paquet suivant.
  • -q pour une sortie silencieuse (sauf pour les délais d'attente)
  • | tee pour imprimer simultanément la sortie à la console et au fichier

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X