Я пишу сценарий пробуждения по локальной сети для набора наших лабораторных компьютеров. У нас есть sqlite db со списком имен компьютеров, IP-адресов и MAC, и в настоящее время я проверяю каждое из них с помощью «-c1», чтобы он не работал бесконечно - но даже если это требует некоторого ожидания, есть ли более быстрый способ получить отвечать, а не пинговать? Использование ping немного замедляет работу сценария, так как для продолжения требуется ответ на ping.
Большое спасибо за любые предложения!
источник
Для этого и был разработан fping. http://fping.sourceforge.net/
После этого вам нужно проанализировать вывод, а не полагаться на код возврата, но это намного быстрее, чем при обычном пинге.
источник
Это будет работать только для одного или двух компьютеров, но если вы подключите их напрямую к компьютеру, ответственному за проверку их статуса, вы можете использовать,
ethtool
чтобы увидеть, активна ли ссылка.источник
ethtool {network_interface} | grep "Link detected" | cut -f 3 -d ' '
вернется,yes
если машина подключена, аno
если нет.То, что вы могли бы сделать, это пинговать широковещательный адрес, что должно заставить все компьютеры пинговать обратно. Затем вы можете проверить этот список по сравнению с тем, что есть в SQLite, чтобы убедиться, что все компьютеры работают.
Кроме того, пинг - это, вероятно, самый быстрый способ обеспечить бодрствование компьютера в сети. Как упоминалось в другом ответе, это не дает действительно полезных данных. Если у вас есть возможность установить сценарии, вы можете добавить cronjob для проверки связи с центральным сервером, запустить задачу или просто отобразить список процессов на центральном сервере, который будет регистрировать запрос. Затем просто отметьте это, и вы узнаете, есть ли у вас проблемы, и вам не нужно каждый раз проверять их вручную.
источник
Ganglia использует многоадресный трафик для мониторинга множества хостов в кластере. Возможно, вы могли бы использовать нечто подобное? Это предполагает, что ваше сетевое оборудование разрешает многоадресный трафик между всеми хостами и вашей системой мониторинга.
источник
У меня была та же проблема, и я придумал следующий (быстрый и грязный) скрипт. Это по существу выдает все пинги как отдельные задания параллельно и сканирует всю подсеть / 24 за 3 секунды; обратите внимание, что по какой-то причине я не удосужился узнать, что не могу использовать здесь код результата ping, но grep -v сделал свою работу:
источник
В С,
источник
Я нашел,
fping -r0 ...
чтобы обеспечить самый быстрый ответ.Опция
-r
(Повторить) кажется быстрее, чем аналог-c
(количество). При использовании-r0
результатов отправляется только один пинг, а выходные данные значительно сокращаются по сравнению с другими параметрами.В моей системе ...
Результаты в ...
Немного массажа, чтобы избавиться от
ICMP
сообщения (ей), дает мне ...Что касается скорости,
fping
на этом старом 1,8-ГГц двухъядерном процессоре Intel с 4 ГБ оперативной памяти ...А
grep
и ,sort
кажется, только добавить 0.001-0.004s к тому времени ...ПРИМЕЧАНИЯ
ICMP
Сообщение не происходит при каждом запуске.2>&1
Необходимо , чтобы предотвратитьICMP
сообщение от появляться на выходе , как он отправляетсяstderr
вместоstdout
.источник