Parfois, vous voulez savoir combien de temps prends un serveur pour redémarrer. Lorsque vous effectuez un scénario de test de haute disponibilité, vous voulez valider la durée d’indisponibilitée d’une IP virtuelle.
La commande ping est utile pour suivre si une adresse IP est up, mais la sortie n’est pas horodatée et vous ne pouvez pas faire d’analyse à postériori.
Nous utilisons un système CentOS 8.2 :
[moore@mux ~]$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
Notre commande fonctionnera avec le shell bash:
[moore@mux ~]$ echo $SHELL
/bin/bash
Par exemple, si nous voulons pinger l’adresse IP 192.168.1.2, nous pouvons utiliser cette ligne de commande :
[moore@mux ~]$ ping 192.168.1.2 | while read pong; do echo "$(date): $pong"; done
Wed Nov 25 21:06:16 UTC 2020: PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
Wed Nov 25 21:06:16 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.837 ms
Wed Nov 25 21:06:17 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=1.01 ms
Wed Nov 25 21:06:18 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.882 ms
Wed Nov 25 21:06:19 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.738 ms
Wed Nov 25 21:06:34 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=19 ttl=64 time=1.48 ms
Wed Nov 25 21:06:35 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=20 ttl=64 time=0.675 ms
Wed Nov 25 21:06:36 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=21 ttl=64 time=0.617 ms
Wed Nov 25 21:06:37 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=22 ttl=64 time=0.757 ms
Wed Nov 25 21:06:38 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=23 ttl=64 time=1.00 ms
Wed Nov 25 21:06:39 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=24 ttl=64 time=0.659 ms
^C
Nous pouvons voir dans ces logs que l’adresse IP 192.168.1.2 n’a pas répondue pendant un trou noir de 15 secondes de 21:06:19 à 21:06:34.
Vous pouvez également rediriger votre sortie de ping horodatée vers un fichier de log, nous ajoutons le signe ‘&’ pour mettre la tâche en arrrière plan :
[moore@mux ~]$ ping 192.168.1.2 | while read pong; do echo "$(date): $pong"; done > /tmp/ping_testing.log &
[1] 4900
Une fois la période d’observation terminée, vous pouvez remettre la tâche au premier plan avec la commande foreground ‘fg’:
[moore@mux ~]$ fg
ping 192.168.1.2 | while read pong; do
echo "$(date): $pong";
done > /tmp/ping_testing.log
^C
Les mesures de ping on bien été datées et je peux faire mon analyse à partir du fichier de log :
[moore@mux ~]$ cat /tmp/ping_testing.log
Wed Nov 25 21:41:45 UTC 2020: PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
Wed Nov 25 21:41:45 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.750 ms
Wed Nov 25 21:41:46 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.801 ms
Wed Nov 25 21:41:47 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.664 ms
Wed Nov 25 21:41:48 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.687 ms
Wed Nov 25 21:41:49 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=0.666 ms
Wed Nov 25 21:41:50 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=6 ttl=64 time=0.741 ms
Wed Nov 25 21:41:52 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=7 ttl=64 time=0.803 ms
Wed Nov 25 21:41:53 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=8 ttl=64 time=0.804 ms
Wed Nov 25 21:41:54 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=9 ttl=64 time=0.689 ms
Wed Nov 25 21:41:55 UTC 2020: 64 bytes from 192.168.1.2: icmp_seq=10 ttl=64 time=0.616 ms