Пингуем устройства. Как быть? Устройства Online.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Вт июл 23, 2019 10:26 pm

SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:07 pm
Не будет. 3 секунды примерно выполняется.
вообще то есть где то в связи с устройствами проблеммы...кмк... :oops: :oops: :oops:
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение SmoKE_xDDD » Вт июл 23, 2019 10:30 pm

tarasfrompir писал(а):
Вт июл 23, 2019 10:26 pm
SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:07 pm
Не будет. 3 секунды примерно выполняется.
вообще то есть где то в связи с устройствами проблеммы...кмк... :oops: :oops: :oops:
Не понял, что вы имеет ввиду, но вот на всякий случай замер ping():

Код: Выделить всё

Старт - 2019-07-23T22:29:56+03:00
Конец - 2019-07-23T22:30:01+03:00
5 секунд на 1 пинг. 70 устройств = 6 минут. Учитываем тормоза разных систем и получаем примерно 10-15 минут.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Вт июл 23, 2019 10:35 pm

SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:30 pm
Не понял, что вы имеет ввиду, но вот на всякий случай замер ping():

Код: Выделить всё

Старт - 2019-07-23T22:29:56+03:00
Конец - 2019-07-23T22:30:01+03:00
5 секунд на 1 пинг. 70 устройств = 6 минут. Учитываем тормоза разных систем и получаем примерно 10-15 минут.
1. еще и Вас спрошу Линукс ?
2. это устройство офлайн?
3. И если 2 верно то какой пинг устройства онлайн?
4. И если 2 не верно - то прблемма с линком к устройству.... :oops: кмк.... :oops: :oops:

ПС Поверьте ускорить процедуру пинга можна и пофиг сколько устройств я думаю что реальная цифра 50 устройств за 5 сек на слабой системе.
Аналогичные исследования проводил - тестеры даже не жаловались на задержки и даже не знают что система пингует устройства при каждом запросе... Так что если интересно то милости прошу с вопросами...
Последний раз редактировалось tarasfrompir Вт июл 23, 2019 10:43 pm, всего редактировалось 1 раз.
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение SmoKE_xDDD » Вт июл 23, 2019 10:42 pm

tarasfrompir писал(а):
Вт июл 23, 2019 10:35 pm
SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:30 pm
Не понял, что вы имеет ввиду, но вот на всякий случай замер ping():

Код: Выделить всё

Старт - 2019-07-23T22:29:56+03:00
Конец - 2019-07-23T22:30:01+03:00
5 секунд на 1 пинг. 70 устройств = 6 минут. Учитываем тормоза разных систем и получаем примерно 10-15 минут.
1. еще и Вас спрошу Линукс ?
2. это устройство офлайн?
3. И если 2 верно то какой пинг устройства онлайн?
4. И если 2 не верно - то прблемма с линком к устройству.... :oops: кмк.... :oops: :oops:
При чем тут это, если в ядре MJDM задано время пинга и количество пакетов?

Код: Выделить всё

/**
 * Ping host
 * @param mixed $host Host address
 * @return bool
 */
function ping($host)
{
   if (IsWindowsOS())
      exec(sprintf('ping -n 1 %s', escapeshellarg($host)), $res, $rval);
   elseif (substr(php_uname(), 0, 7) === "FreeBSD")
      exec(sprintf('ping -c 1 -t 5 %s', escapeshellarg($host)), $res, $rval);
   else
      exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), $res, $rval);

   return $rval === 0 && preg_match('/ttl/is', join('', $res));
}
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Вт июл 23, 2019 10:47 pm

SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:42 pm
При чем тут это, если в ядре MJDM задано время пинга и количество пакетов?

Код: Выделить всё

/**
 * Ping host
 * @param mixed $host Host address
 * @return bool
 */
function ping($host)
{
   if (IsWindowsOS())
      exec(sprintf('ping -n 1 %s', escapeshellarg($host)), $res, $rval);
   elseif (substr(php_uname(), 0, 7) === "FreeBSD")
      exec(sprintf('ping -c 1 -t 5 %s', escapeshellarg($host)), $res, $rval);
   else
      exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), $res, $rval);

   return $rval === 0 && preg_match('/ttl/is', join('', $res));
}
притом что данная функция на лине ожидает первого ответа от устройства, ИЛИ отправляет запросы не более 5 секунд... ( для винды 1 секунда) я прав? (это относится к первому вопросу)
ко второму вопросу - ответ исходит из п.1 если ответ получен то все , еесли же нет то пингуем 5 секунд.
ну и сответственно мое кмк - если пинг большой то или устройство офлайн или же проблемы со связью
читай в предыдущем моем посте ПС - потом дописывал
За это сообщение автора tarasfrompir поблагодарил:
SmoKE_xDDD (Вт июл 23, 2019 10:52 pm)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение SmoKE_xDDD » Вт июл 23, 2019 10:51 pm

tarasfrompir писал(а):
Вт июл 23, 2019 10:47 pm
притом что данная функция на лине ожидает первого ответа от устройства, ИЛИ отправляет запросы не более 5 секунд... ( для винды 1 секунда) я прав? (это относится к первому вопросу)
ко второму вопросу - ответ исходит из п.1 если ответ получен то все , еесли же нет то пингуем 5 секунд.
ну и сответственно мое кмк - если пинг большой то или устройство офлайн или же проблемы со связью
читай в предыдущем моем посте ПС - потом дописывал
В сети не сильно силен, спорить не буду :) Но вы правы :D
Сервак на nix
Результат:

Код: Выделить всё

Пингуем ОНЛАЙН устройство: 
Старт - 2019-07-23T22:49:53+03:00
Конец - 2019-07-23T22:49:53+03:00
Пингуем ОФФЛАЙН устройство: 
Старт - 2019-07-23T22:49:53+03:00
Конец - 2019-07-23T22:49:58+03:00
Тогда, касаемо вопроса выше, почему у автора вопроса 70 устройств пингуется 20 минут? ))) Все устройства выключены?
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Вт июл 23, 2019 11:00 pm

SmoKE_xDDD писал(а):
Вт июл 23, 2019 10:51 pm
В сети не сильно силен, спорить не буду :) Но вы правы :D
Сервак на nix
Результат:

Код: Выделить всё

Пингуем ОНЛАЙН устройство: 
Старт - 2019-07-23T22:49:53+03:00
Конец - 2019-07-23T22:49:53+03:00
Пингуем ОФФЛАЙН устройство: 
Старт - 2019-07-23T22:49:53+03:00
Конец - 2019-07-23T22:49:58+03:00
Тогда, касаемо вопроса выше, почему у автора вопроса 70 устройств пингуется 20 минут? ))) Все устройства выключены?
А потому что автор или схитрил с вопросом по незнанию или еще чегото не так сделал, но (взяв в руки большой светящийся шар для предсказаний) сделаю одно простое предположение, что он пингует 70 устройств НО не 1 раз как положено для номрального устройства а может раз 10 для ВЕРНЯКА... Автор то думает так что чем больше раз пингону устройство тем лучше для ОТКЛЮЧЕННОГО устройства :lol: типа оно от этого включится :lol: .
ПС
Я не говорю что функция пинга нормально написана и я сам поднимал этот вопрос перед разработчиком, и даже предлагал варианты ее изменения, но пока что видать Сергею не до этого....
За это сообщение автора tarasfrompir поблагодарил:
Logrus (Ср июл 24, 2019 12:49 am)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Вт июл 23, 2019 11:25 pm

ждемс инфы от автора предыдущих постов - о 70 устройствах
Спасибо нам ПОМОЖЕТ..!
workpage
Сообщения: 438
Зарегистрирован: Чт авг 24, 2017 9:38 am
Благодарил (а): 51 раз
Поблагодарили: 86 раз
Контактная информация:

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение workpage » Пт июл 26, 2019 7:07 pm

Вобщем написал такой вот сценарий. У каждого устройства, которое будем проверять, надо добавить 2 дополнительных свойства. Ping и ip. В ping скрипт будет вписывать 1 или 0 в случае изменения, в ip надо записать ip адрес. К свойству Ping привязывем новый метод и он уже делает оповещения.

Скрипт:
$name=('ТелевизорВПодвале');
$ip=getGlobal($name.'.'.'ip');
$online1 = ping($ip);
if ($online1==1)
{
if (!getGlobal($name.'.'.'Ping')) {setGlobal($name.'.'.'Ping', '1'); }
}
else
{
if (getGlobal($name.'.'.'Ping')) {setGlobal($name.'.'.'Ping', '0'); }
}
#########################################################

Повторить далее по количеству проверяемых устройств.

Метод:
$status=$this->getProperty("Ping");
if ($status)
{
say('Связь с выключателем в гардеробе 1этажа восстановлена', 1);
}
else
{
say('Потеряна связь с выключателем в гардеробе на 1 этаже', 1);
}

Время выполнения данного сценария, если все устройства online - менее 10 секунд!!! (76 ip адресов)
Воткнул запуск сценария в OnNewMinite
runScript('Ping');
Последний раз редактировалось workpage Пт июл 26, 2019 7:19 pm, всего редактировалось 1 раз.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Пингуем устройства. Как быть? Устройства Online.

Сообщение tarasfrompir » Пт июл 26, 2019 7:14 pm

workpage писал(а):
Пт июл 26, 2019 7:07 pm
Вобщем написал такой вот сценарий. У каждого устройства, которое будем проверять, надо добавить 2 дополнительных свойства. Ping и ip. В ping скрипт будет вписывать 1 или 0 в случае изменения, в ip надо записать ip адрес. С свойству Ping привязывем новый метод и он уже делает оповещения.
Время выполнения данного сценария, если все устройства online - менее 10 секунд!!! (76 ip адресов)
Воткнул запуск сценария в OnNewMinite
runScript('Ping');
Ну вот, все испортил... :oops: :oops: :oops:
Во первых - зачем делать все тоже что делает модуль, пингонлайн...
во вторых зачем грузить систему дополнительными данными ? ну хз не знаю...
в третих молодец что сделал... :shock: :shock: :shock: :shock:
ну и вроде все мысли кончились :oops: :oops: :oops:
За это сообщение автора tarasfrompir поблагодарил:
Samir77 (Пт авг 30, 2019 11:31 pm)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Ответить