102 votes

Comment puis-je horodater chaque résultat de ping ?

Ping renvoie cette information par défaut :

64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms

Y a-t-il un moyen de faire en sorte qu'il ajoute l'horodatage ?

Par exemple,

Mon 21 May 2012 15:15:37 EST | 64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms

Je suis sous OS X v10.7 (Lion) qui semble avoir des problèmes de sécurité. BSD version de ping.

3voto

rubo77 Points 1502

Vous pouvez créer une fonction dans votre ~/.bashrc de sorte que vous obtenez une commande ping ping-t sur votre console :

function ping-t { ping "$1" | while read pong; do echo "$(date): $pong"; done; }

Maintenant vous pouvez appeler ça sur la console :

ping-t example.com

Sa 31. Mär 12:58:31 CEST 2018 : PING exemple.com (93.184.216.34) 56(84) octets de données.
Sa 31. Mär 12:58:31 CEST 2018 : 64 bytes de 93.184.216.34 (93.184.216.34) : icmp_seq=1 ttl=48 time=208 ms
Sa 31. Mär 12:58:32 CEST 2018 : 64 bytes de 93.184.216.34 (93.184.216.34) : icmp_seq=2 ttl=48 time=233 ms

1voto

Venkat Madhav Points 157

Vous n'avez pas spécifié d'horodatage ou d'intervalle de temps pendant lequel vous auriez besoin de cette sortie, j'ai donc considéré qu'il s'agissait d'une boucle infinie. Vous pouvez le modifier en fonction de vos besoins.

while true
do
   echo -e "`date`|`ping -n -c 1 <IP_TO_PING>|grep 'bytes from'`"
   sleep 2
done

1voto

Thomas Szteliga Points 136
ping -D -n -O -i1 -W1 8.8.8.8

ou peut-être

while true; do \
    ping -n -w1 -W1 -c1 8.8.8.8 \
    | grep -E "rtt|100%" \
    | sed -e "s/^/`date` /g"; \
    sleep 1; \
done

1voto

DBALUKE HUANG Points 84

J'en ai également besoin pour surveiller le problème de réseau pour mon problème de temps d'arrêt de la mise en miroir de la base de données. J'utilise le code de commande ci-dessous :

ping -t Google.com|cmd /q /v /c "(pause&pause)>nul & for /l %a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 Google.com>nul" >C:\pingtest.txt

Il vous suffit de remplacer Google.com par le nom de votre serveur. Cela fonctionne parfaitement pour moi. et n'oubliez pas de l'arrêter lorsque vous avez terminé. Le fichier pingtest.txt va augmenter de 1 KB par seconde (environ).

Merci pour raymond.cc. https://www.raymond.cc/blog/timestamp-ping-with-hrping/

0voto

nDCasT Points 71

Essayez cette ligne.

while sleep 1;do echo "$(date +%d-%m-%y-%T) $(ping -c 1 whatever.com | gawk 'FNR==2{print "Response from:",$4,$8}')" | tee -a /yourfolder/pingtest.log;done

Vous devrez l'annuler avec ctrl-c tho.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X