URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9345
[ Назад ]

Исходное сообщение
"Пинг группы адресов"

Отправлено Jinx , 03-Янв-12 12:43 
Кратко о том чего хочу:
Хочу сделать скрипт на Шелле, который пингует группу адресов, и в случае отсутствия ответа от всей группы - тушить данную машину.

Я не прошу готового решения, прошу подтолкнуть меня в нужном направлении, объяснить каким образом можно это реализовать.
Я никак не могу придумать каким образом проверять именно группу адресов. Можно конечно через if else, что-то типа:


if не пингуется первый адрес then
if не пингуется второй адрес then

но это-же полнейшее извращение - так делать неправильно. Прошу совета.

Содержание

Сообщения в этом обсуждении
"Пинг группы адресов"
Отправлено Loly , 03-Янв-12 12:53 
http://fping.sourceforge.net/

"fping is different from ping in that you can specify any number of hosts on the command line, or specify a file containing the lists of hosts to ping."


"Пинг группы адресов"
Отправлено Jinx , 03-Янв-12 13:02 
> http://fping.sourceforge.net/
> "fping is different from ping in that you can specify any number
> of hosts on the command line, or specify a file containing
> the lists of hosts to ping."

По описанию - именно то что нужно. Пойду эксперементировать.
Спасибо.


"Пинг группы адресов"
Отправлено Jinx , 05-Янв-12 19:33 
При проверке отключенных хостов появляется вот такая бяка:
ICMP Redirect from 192.168.1.1 for ICMP Echo sent to 192.168.1.10

где:
192.168.1.1 - маршрутизатор, которого я вообще не трогал
192.168.1.10 - компьютер, который я проверял

И мало того - это сообщение появляется даже при:

fping -a 192.168.1.10 > /dev/null

то есть я вывод команды в черную дыру направляю, а мне оно все равно пишет.
Соответственно написанный мной скрипт с использованием fping получился неработоспособный.

"Пинг группы адресов"
Отправлено ACCA , 06-Янв-12 08:14 
> При проверке отключенных хостов появляется вот такая бяка:
>
ICMP Redirect from 192.168.1.1 for ICMP Echo sent to 192.168.1.10

Возможно, что у тебя маршрут в свою же сетку не описан или описан криво, всё валится на default router. Тот переправил куда положено, о чём тебе и прислал ICMP редирект.


> И мало того - это сообщение появляется даже при:
>

fping -a 192.168.1.10 > /dev/null

> то есть я вывод команды в черную дыру направляю, а мне оно

У команды есть минимум два вывода - stdout (№1) и stderr (№2). Сообщения об ошибках и предупреждения принято писать в stderr. Перехватывать их можно 2> /dev/null, но не нужно - они тебе не мешают.


> Соответственно написанный мной скрипт с использованием fping получился
> неработоспособный.

Скорее всего ты в другом месте накосячил. Продолжай ковыряться - разберёшься. Только теорию почитай.


"Пинг группы адресов"
Отправлено Jinx , 06-Янв-12 16:14 
Уже исправил, еще вчера. Покопался в sysctl - отключил "ICMP routing redirects", так что все уже работает нормально.

Кому интересно - это делаем так:

net.inet.icmp.drop_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0


"Пинг группы адресов"
Отправлено Jinx , 06-Янв-12 16:21 
Забыл дописать, а править сообщение не могу - нашел в чем ошибка была:
Оказывается что fping возвращает немного непредсказуемый для меня результат. Даже если хоть один хост не пингуется, то "$?" не будет равно нулю - не пингуется только один, или все, мы все равно будем получать "$? -ne 0". В моем случае мне нужно отловить момент когда не пингуются все. Пришлось грепом пользоваться.