Использование системы в различных ситуациях, вопросы программирования сценариев.
Модератор: immortal
-
tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
-
Благодарил (а):
223 раза
-
Поблагодарили:
816 раз
Сообщение
tarasfrompir » Вт июл 23, 2019 10:26 pm
SmoKE_xDDD писал(а): ↑Вт июл 23, 2019 10:07 pm
Не будет. 3 секунды примерно выполняется.
вообще то есть где то в связи с устройствами проблеммы...кмк...

Спасибо нам ПОМОЖЕТ..!
-
SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
-
Благодарил (а):
110 раз
-
Поблагодарили:
899 раз
Сообщение
SmoKE_xDDD » Вт июл 23, 2019 10:30 pm
tarasfrompir писал(а): ↑Вт июл 23, 2019 10:26 pm
SmoKE_xDDD писал(а): ↑Вт июл 23, 2019 10:07 pm
Не будет. 3 секунды примерно выполняется.
вообще то есть где то в связи с устройствами проблеммы...кмк...
Не понял, что вы имеет ввиду, но вот на всякий случай замер 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 раз
Сообщение
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 не верно - то прблемма с линком к устройству....

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

кмк....
При чем тут это, если в ядре 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 раз
Сообщение
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 секунд.
ну и сответственно мое кмк - если пинг большой то или устройство офлайн или же проблемы со связью
читай в предыдущем моем посте ПС - потом дописывал
Спасибо нам ПОМОЖЕТ..!
-
SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
-
Благодарил (а):
110 раз
-
Поблагодарили:
899 раз
Сообщение
SmoKE_xDDD » Вт июл 23, 2019 10:51 pm
tarasfrompir писал(а): ↑Вт июл 23, 2019 10:47 pm
притом что данная функция на лине ожидает первого ответа от устройства, ИЛИ отправляет запросы не более 5 секунд... ( для винды 1 секунда) я прав? (это относится к первому вопросу)
ко второму вопросу - ответ исходит из п.1 если ответ получен то все , еесли же нет то пингуем 5 секунд.
ну и сответственно мое кмк - если пинг большой то или устройство офлайн или же проблемы со связью
читай в предыдущем моем посте ПС - потом дописывал
В сети не сильно силен, спорить не буду

Но вы правы

Сервак на 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 раз
Сообщение
tarasfrompir » Вт июл 23, 2019 11:00 pm
SmoKE_xDDD писал(а): ↑Вт июл 23, 2019 10:51 pm
В сети не сильно силен, спорить не буду

Но вы правы

Сервак на 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 для ВЕРНЯКА... Автор то думает так что чем больше раз пингону устройство тем лучше для ОТКЛЮЧЕННОГО устройства

типа оно от этого включится

.
ПС
Я не говорю что функция пинга нормально написана и я сам поднимал этот вопрос перед разработчиком, и даже предлагал варианты ее изменения, но пока что видать Сергею не до этого....
Спасибо нам ПОМОЖЕТ..!
-
tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
-
Благодарил (а):
223 раза
-
Поблагодарили:
816 раз
Сообщение
tarasfrompir » Вт июл 23, 2019 11:25 pm
ждемс инфы от автора предыдущих постов - о 70 устройствах
Спасибо нам ПОМОЖЕТ..!
-
workpage
- Сообщения: 438
- Зарегистрирован: Чт авг 24, 2017 9:38 am
-
Благодарил (а):
51 раз
-
Поблагодарили:
86 раз
-
Контактная информация:
Сообщение
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 раз
Сообщение
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');
Ну вот, все испортил...
Во первых - зачем делать все тоже что делает модуль, пингонлайн...
во вторых зачем грузить систему дополнительными данными ? ну хз не знаю...
в третих молодец что сделал...
ну и вроде все мысли кончились

Спасибо нам ПОМОЖЕТ..!