J'essaie d'écrire un script qui répertorie tous les hôtes de mon réseau local (il y en a environ 20) et écrit l'état du ping à côté de chaque hôte. J'ai le fichier de baux DHCP, j'ai donc toutes les adresses IP (par exemple, 10.0.0.1, 10.0.0.2, etc.), tout ce dont j'ai besoin est l'état du ping pour chaque hôte.
Donc, mon script lance un seul ping pour chaque hôte:
ping -c 1 10.0.0.1
Malheureusement, lorsqu'un hôte est hors ligne, la requête ping prend du temps à expirer. J'ai vérifié man ping
, il semble y avoir deux options pour définir le délai d'expiration: -w deadline
et -W timeout
. Je pense que je suis intéressé par ce dernier.
Alors j'ai essayé ceci:
ping -c 1 -W 1 10.0.0.1
Mais attendre une seconde par hôte hors ligne est encore trop long. J'ai essayé de le régler en dessous d'une seconde, mais il ne semble pas prendre en compte le paramètre du tout:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Existe-t-il un moyen de régler le délai d’attente sur une valeur inférieure? Si non, y a-t-il des alternatives?
Modifier
- Le système d'exploitation est Debian Lenny.
- Les hôtes sur lesquels j'essaie de faire un ping sont en réalité des points d'accès. Ils sont sur le même vlan et le même sous-réseau que les utilisateurs (pour simplifier le déploiement et le remplacement). C'est pourquoi je ne veux pas analyser tout le sous-réseau (avec un
ping -b
exemple).
Modifier # 2
J'ai accepté la fping
solution (merci pour toutes les autres réponses). Cette commande fait exactement ce que je cherchais:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Cette commande dure au maximum 500 ms et me donne l’état du ping de tous les hôtes à la fois:
10.0.0.1 : [0], 84 bytes, 5.71 ms (5.71 avg, 0% loss)
10.0.0.2 : [0], 84 bytes, 7.95 ms (7.95 avg, 0% loss)
10.0.0.3 : [0], 84 bytes, 16.1 ms (16.1 avg, 0% loss)
10.0.0.4 : [0], 84 bytes, 48.0 ms (48.0 avg, 0% loss)
10.0.0.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 5.71/5.71/5.71
10.0.0.2 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 7.95/7.95/7.95
10.0.0.3 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 16.1/16.1/16.1
10.0.0.4 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 48.0/48.0/48.0
Sur Debian Lenny, l’installation est triviale:
aptitude update
aptitude install fping