Quand je ping, j'ai cet affichage:
> ping -i 4 www.google.fr
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms
J'aimerais avoir l'heure du ping avant.
Quelque chose comme:
> (right functions) + ping -i 7 www.google.fr
mardi 15 mai 2012, 10:29:06 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
mardi 15 mai 2012, 10:29:13 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
mardi 15 mai 2012, 10:29:20 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms
Comment feriez-vous cela en ligne de commande (si c'est possible)?
command-line
ping
Olivier Pons
la source
la source
Réponses:
Utilisation:
Vous obtiendrez le résultat comme ceci:
la source
ping 192.168.70.1 | while read pong; do echo "$(awk '{print $1}' /proc/uptime): $pong"; done
Une autre possibilité d'utiliser l'
ping -D
option qui vous donne le timestamp comme heure Unix.Voici une version de la commande "Achu" avec un format légèrement différent:
Cela vous amène:
la source
Il existe un utilitaire appelé
ts
, qui lit stdin, ajoute des horodatages et l’écrit sur stdout:Il peut être installé dans Ubuntu avec .
sudo apt install moreutils
la source
apt install moreutils
Vous pouvez également utiliser
gawk
(ouawk
, si vos/etc/alternatives/awk
points sont/usr/bin/gawk
):Ceci est similaire à l'approche de la réponse d'Achu , mais
ping
la sortie est dirigée versgawk
au lieu d'une boucle shell qui appelledate
. Comme avec cette approche, cela fonctionne sans-c
, mais si vous ne réussissez pas à arrêter ping après n pings, et que vous arrêtez la boucle avec + , les statistiques habituelles ne seront pas imprimées.-c n
CtrlCping
Cela se produit que
ping
la sortie soit dirigée versgawk
ou unewhile
boucle shell . La raison en est que la commande située sur le côté droit du tuyau, plutôt queping
, reçoit SIGINT lorsque vous appuyez sur Ctrl+ C, etping
ne sait pas imprimer les statistiques avant d'être terminée.Si vous avez exécuté
ping
sans-c
sur le côté gauche d'un tuyau (comme indiqué ci-dessus) et que vous souhaitez le terminer de manière à imprimer les statistiques, alors au lieu d'appuyer sur Ctrl+ Cdans le terminal où il est exécuté, vous pouvez exécuter depuis un autre terminal, en le remplaçant par l'ID de processus de la commande. Si vous n'exécutez qu'une seule instance de, vous pouvez simplement utiliser .kill -INT PID
PID
ping
ping
killall -INT ping
Vous pouvez également remplacer la
ping
commande située à gauche du canal par une commande qui exécute un shell, signale l'ID de processus de ce shell, puis remplace ce shell par laping
commande (le même PID lui est alors attribué):Ensuite, la première ligne de sortie affiche l’ID de processus de la
ping
commande (qui sera généralement différent à chaque fois). Cela ressemblerait à ceci, mais avec une heure et une date différentes et probablement un identifiant de processus différent:Ensuite, à partir d'un autre terminal, vous pouvez exécuter
kill -INT 7557
, en remplaçant7557
par l'ID de processus réel que vous avez vu, pour mettre fin à laping
commande de manière à lui faire imprimer des statistiques.(Si vous tirez parti des fonctionnalités de contrôle des tâches de votre shell , vous pourrez le faire également dans le même terminal. Toutefois, si vous souhaitez copier du texte de votre terminal sans supprimer aucune partie extranet dans laquelle vous avez exécuté des commandes, vous devez terminer à
ping
partir d'un terminal séparé.)Lectures complémentaires:
man ping
- " Lorsque le nombre spécifié de paquets a été envoyé (et reçu) ou si le programme est terminé avec un SIGINT, un bref résumé est affiché. "la source
SIGINT
(ce que fait Ctrl + C) auping
processus en utilisantkill
oukillall
. J'ai développé cette réponse avec des détails.Si vous souhaitez le sauvegarder dans un fichier, tapez la commande ci-dessous dans le terminal.
Vous n'avez pas besoin de créer de fichier texte, ça le fera automatiquement
Ping_Test.txt
la source
(merci à Achu et Eliah Kagan pour les idées), il existe un moyen de
ping
sortieping
ctrl+c
pour faire cela, il faut indiquer à la partie droite de la commande (après le tube) à ignorer en
SIGINT
utilisanttrap "" INT
:la source