Я пытаюсь написать скрипт, который перечисляет все хосты в моей локальной сети (их около 20) и записывает состояние ping рядом с каждым хостом. У меня есть файл аренды DHCP, поэтому у меня есть все IP-адреса (скажем, 10.0.0.1, 10.0.0.2 и т. Д.), Все, что мне нужно, это состояние ping для каждого хоста.
Итак, мой скрипт запускает один пинг для каждого хоста:
ping -c 1 10.0.0.1
К сожалению, когда хост находится в автономном режиме, пинг занимает много времени для тайм-аута. Я проверил man ping
, кажется, есть два варианта установки задержки: -w deadline
и -W timeout
. Я думаю, что меня интересует последнее.
Итак, я попробовал это:
ping -c 1 -W 1 10.0.0.1
Но ждать одну секунду на автономном хосте все еще слишком долго. Я попытался установить его ниже секунды, но, похоже, этот параметр вообще не учитывается:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Есть ли способ установить таймаут на более низкое значение? Если нет, есть ли альтернативы?
редактировать
- ОС Debian Lenny.
- Хосты, которые я пытаюсь пропинговать, на самом деле являются точками доступа. Они находятся в той же VLAN и подсети, что и пользователи (для простоты развертывания и замены). Вот почему я не хочу сканировать все подсети (
ping -b
например, с).
Редактировать № 2
Я принял fping
решение (спасибо за все остальные ответы). Эта команда делает именно то, что я искал:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Эта команда занимает не более 500 мсек и дает мне статус ping сразу для всех хостов:
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
На Debian Lenny установка тривиальна:
aptitude update
aptitude install fping