J'essaie d'écrire un script qui liste tous les hôtes de mon réseau local (il y en a une vingtaine) et écrit le statut ping à côté de chaque hôte. J'ai le fichier des baux DHCP, donc j'ai toutes les IPs (disons, 10.0.0.1, 10.0.0.2, etc.), tout ce dont j'ai besoin est le statut ping pour chaque hôte.
Ainsi, 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, le ping prend beaucoup de temps avant de s'arrêter. J'ai vérifié man ping
il semble y avoir deux options pour définir le délai d'attente : -w deadline
y -W timeout
. Je pense que je suis intéressé par ce dernier.
Alors j'ai essayé ça :
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 du tout prendre en compte le paramètre :
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Y a-t-il un moyen de régler le délai d'attente à une valeur inférieure ? Sinon, existe-t-il des alternatives ?
Modifier
- L'O.S. est Debian Lenny.
- Les hôtes que j'essaie de pinguer sont en fait 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 souhaite pas scanner tout le sous-réseau (avec un
ping -b
par exemple).
Edit #2
J'ai accepté le fping
(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 prend au maximum 500 ms et me donne le statut ping de tous les hôtes en même temps :
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