Comment puis-je faire le ping Linux pour afficher le délai d'attente des demandes au lieu d'omettre la sortie?
Tout comme la version Windows de ping.
linux
networking
ping
André
la source
la source
Réponses:
fping n'a pas fonctionné pour moi ... Dans mon cas, la plupart du temps je veux voir que c'est essentiellement pendant le redémarrage du serveur ... cela fonctionne plutôt bien sous Windows ...
Je construis un script simple (développant la réponse @entropo) pour m'aider à ce sujet, ce qui peut aider à répondre à cette question:
https://gist.github.com/brunobraga/7259197
Et l'utilisation est quelque chose comme:
la source
La meilleure chose que j'ai trouvée a été d'utiliser l'indicateur -O (Notez que cela ne fonctionne pas sur toutes les distributions - en utilisant Linux Mint 17.1 Rebecca IPUTILS-PING 3: 20121221-4ubuntu1.1)
Depuis la page de manuel:
-O Report outstanding ICMP ECHO reply before sending next packet. This is useful together with the timestamp -D to log output to a diagnostic file and search for missing answers.
la source
ping
; sur Debian Wheezy, je reçois "ping: invalid option -- 'O'
", mais sur Jessie, cela fonctionne comme vous le constatez. Vous pouvez mettre à jour votre réponse pour inclure ces informations. (J'ai également soumis une modification suggérée pour utiliser du texte préformaté pour la sortie et les informations de la page deLorsque j'utilise ping pour voir si un hôte est dans les scripts shell, je fais quelque chose comme ceci:
ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up
Fondamentalement, envoie un ICMP qui expire en une seconde sans sortie et utilise le code de sortie pour déclencher une action supplémentaire.
la source
Il n'y a aucun moyen pour le commun
ping
de faire ça. Si vous essayez de créer un script, vous avez quelques options:Si le ping échoue,
$?
sera 1, si le ping réussit,$?
sera 0.L'autre option utilise
fping
qui fonctionne beaucoup comme Ciscoping
:la source
Le script ci-dessus de bruno.braga fonctionne très bien, mais personnellement, je préfère utiliser un alias dans un profil de shell (comme .bashrc) afin que ce soit un cas d'utilisation quotidien.
Ma solution ci-dessous calcule également automatiquement le numéro de séquence de la demande ECHO:
Voici l'exemple de sortie lorsque l'hôte est instable avec un délai d'expiration:
Bien sûr, l'inconvénient est: aucune statistique à la fin lorsque CTRL-C est pressé. Si vous le souhaitez, il serait également possible de calculer min / avg / max par script shell, mdev est bien au-delà de la portée.
la source
J'ai peur, mais il n'y a pas de solution à 100% à cela avec le ping standard. Même avec ping -v pour une sortie détaillée, ping serait silencieux en cas de dépassement de délai. Vous pouvez essayer d'utiliser:
Cela arrêterait le ping après 2 secondes, puis afficherait le nombre de paquets transmis et la perte de paquets. Une autre option serait d'utiliser mtr .
la source
la source
fping
est bon, et BTW-e
n'est pas nécessaire lorsque-l
ou-c
est ajouté, pourrait simplement utiliserfping -l 8.8.8.8
, la sortie est la même.J'aime beaucoup le script shell de Bruno. J'ai ajouté une ligne pour créer un fichier avec tous les échecs.
echo -e "
date +'%Y/%m/%d %H:%M:%S'
- l'hôte $ host est \ 033 [0; 31mdown \ 033 [0m" >> ./lostpackets.txtla source
Sans script quoi que ce soit
ping -f -i 1 hostname
Avantages : commande Linux standard - rien à installer ni à écrire.
Inconvénients :
Avec un script minimal
Inconvénients : vous n'obtenez aucune statistique à la fin et vous ne pouvez pas utiliser ces 3 options de ping:
-i
pour modifier l'intervalle entre l'envoi de paquets (il est codé en dur à 1 s)-W
pour modifier le délai (il est codé en dur à 1 s)-c
s'arrêter après l'envoi de N paquetsBTW: C'est l'un des exemples extrêmement rares de fonctionnalités que je manque vraiment d'un outil CLI Linux mais que je trouve dans un outil Windows. L'exception qui confirme la règle comme on dit :-)
la source
Si vous souhaitez effectuer un ping continu tout comme Windows et avec horodatage, utilisez celui-ci. N'hésitez pas à remplacer
192.168.0.1
par votre propre adresse IPExemple de réponse OK
Exemple de demande expirée
la source
Le Ping normal vous montre en fait des délais d'attente. En regardant la valeur seq = entre les pings, vous pouvez dire combien de temps morts
EG 3 temps morts se sont produits entre les 2 pings ci-dessus depuis le premier
seq=8
et le secondseq=11
(9 et 10 étaient des temps morts)seq=sequence
.la source