Страница 9 из 120
Re: Ошибки/проблемы/неисправности системы
Добавлено: Ср апр 19, 2017 5:54 pm
Vovix
lanket писал(а):Простите что влезаю, но не могу молчать об своих тараканах.
Опять дополнительные доказательства для обязательном применении публичных функций для ООП.
Если бы модуль GPS-трекер имел такие функции то не было бы данной проблемы с модулем FindMyiPhone пользуясь такой функцией.
А так FindMyiPhone пишет напрямую в базу другому модулю GPS-трекер. В какой то момент GPS-трекер обновился, вштырило FindMyiPhone.
Отправлено с моего Redmi Note 3 через Tapatalk
мысли правильные, но причина оказалась другая!!! вот -
viewtopic.php?f=4&t=1528&p=50926#p50926
модуль FindMyiPhone исправен
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пт апр 21, 2017 4:32 pm
Vovix
проблема:
в Debug вижу периодически строчку (число 7354036 меняется):
Код: Выделить всё
16:12:28 0.27704800 Warning: geturl to http://127.0.0.1:80/objects/?job=7354036 is pretty slow (25.92s)
как по ней найти виновного в долгом выполнении?
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пт апр 21, 2017 7:48 pm
ILGAS
Vovix писал(а):проблема:
в Debug вижу периодически строчку (число 7354036 меняется):
Код: Выделить всё
16:12:28 0.27704800 Warning: geturl to http://127.0.0.1:80/objects/?job=7354036 is pretty slow (25.92s)
как по ней найти виновного в долгом выполнении?
У мета тоже самое. У меня это появляется с пкреодичеостью 5 мин. С такой пкреодичеостью опрашивает бродлинк. Думаю это он.
Отправлено с моего SM-G7508Q через Tapatalk
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пт апр 21, 2017 11:33 pm
dfrozen
Код: Выделить всё
апр 21 23:29:14 orangepiplus php[7433]: Starting ./scripts/cycle_execs.php ... OK
апр 21 23:29:14 orangepiplus php[7433]: PHP Notice: Undefined index: SERVER_NAME in /var/www/config.php on line 54
При этом модуль Шедула не установлен (точнее был поставлен, повесил систему и был удален)
Re: Ошибки/проблемы/неисправности системы
Добавлено: Сб апр 22, 2017 12:05 am
Vovix
dfrozen писал(а):...
При этом модуль Шедула не установлен (точнее был поставлен, повесил систему и был удален)
ну дак уберите проверку на него из метода
checkState
Объекты -> systemStates -> System -> его Методы -> checkState (Настроить)
найдите строку:
Код: Выделить всё
$cycles=array('states'=>'цикл проверки состояния','main'=>'главный цикл','execs'=>'цикл запуска команд','scheduler'=>'цикл планировщика');
и сделайте ее такой:
Код: Выделить всё
$cycles=array('states'=>'цикл проверки состояния','main'=>'главный цикл','execs'=>'цикл запуска команд');
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пн апр 24, 2017 4:41 am
xneo
Возможно в цикле connect ошибка в строке 187 (третья у меня в сообщении). До этого переменная
$write обнуляется, а после в методе socket_select уже стоит переменная
$writ. Есть подозрение что пропущена
e в конце названия переменной, т.к. более нигде переменной $writ не нашел.
Код: Выделить всё
$write = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $writ, $except, 0, 1);
И цикл cycle_connect.php занимает 60-90% процессорных ресурсов на Orange Pi One. Именно поэтому и полез туда посмотреть. в логах примерно такое:
Код: Выделить всё
2017-04-24 08:23:30 Listening...
2017-04-24 08:23:31 Listening...
2017-04-24 08:23:32 Listening...
2017-04-24 08:23:33 Listening...
2017-04-24 08:23:34 Listening...
2017-04-24 08:23:35 Listening...
2017-04-24 08:23:36 Listening...
2017-04-24 08:23:37 Listening...
2017-04-24 08:23:38 Listening...
2017-04-24 08:23:39 Listening...
2017-04-24 08:23:40 Listening...
2017-04-24 08:23:40 Updating auto update item (id 74 time 30): <#LANG_GENERAL_EVENTS_LOG#> (code)
2017-04-24 08:23:40 Updating auto update item (id 78 time 10): <#LANG_TEXT_BOX#>
2017-04-24 08:23:40 Updating auto update item (id 80 time 5): <#LANG_SLIDER_BOX#>
2017-04-24 08:23:40 Updating auto update item (id 105 time 30): <#LANG_GENERAL_INSIDE#> (data)
2017-04-24 08:23:40 Updating auto update item (id 97 time 10): State
2017-04-24 08:23:40 Incoming: PING!
2017-04-24 08:23:40 Sending: PONG!
OK.
2017-04-24 08:23:40 Incoming: RECEIVED: PONG!
2017-04-24 08:23:41 Listening...
2017-04-24 08:23:42 Listening...
2017-04-24 08:23:43 Listening...
2017-04-24 08:23:44 Listening...
2017-04-24 08:23:45 Listening...
2017-04-24 08:23:46 Listening...
2017-04-24 08:23:47 Listening...
2017-04-24 08:23:48 Listening...
2017-04-24 08:23:49 Listening...
2017-04-24 08:23:50 Listening...
2017-04-24 08:23:51 Listening...
2017-04-24 08:23:51 Updating auto update item (id 78 time 10): <#LANG_TEXT_BOX#>
2017-04-24 08:23:51 Updating auto update item (id 80 time 5): <#LANG_SLIDER_BOX#>
2017-04-24 08:23:51 Updating auto update item (id 97 time 10): State
2017-04-24 08:23:52 Listening...
2017-04-24 08:23:53 Listening...
2017-04-24 08:23:54 Listening...
2017-04-24 08:23:55 Listening...
2017-04-24 08:23:56 Listening...
2017-04-24 08:23:57 Listening...
2017-04-24 08:23:58 Listening...
2017-04-24 08:23:59 Listening...
2017-04-24 08:24:00 Listening...
2017-04-24 08:24:01 Listening...
Проблему загрузки проца этим скриптом решил ужаснейшим костылем - задержкой во вложенном бесконечном цикле в другой бесконечный цикл в 5 сек.
Не могу разобраться каким образом происходит выход из бесконечных циклов. Получается что он каждый такт крутится полностью и при этом во первых забивает лог (за день 24 Мб) а во вторых грузит проц.
UPD: Возможно пока нет ответа почему так происходит с загрузкой проца кому то поможет мой костыль (Внимание! Костыль не самый лучший и я не рекомендую его всем. Использовать его только при острой необходимости (нужен Connect, но проц сильно занят/греется)!)
Нужно в файле /var/www/scripts/cycle_connect.php (если вы переместили в другую папку то путь будет другой) между 179 и 180 строками добавить еще одну строку с таким содержанием:
В итоге должно получиться так:
Код: Выделить всё
while (1)
{
sleep(2);
$read = array();
$read[0] = $socket;
После этого:

- Screenshot_4.png (34.52 КБ) 11693 просмотра
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пн апр 24, 2017 8:35 am
dfrozen
xneo писал(а):Возможно в цикле connect ошибка в строке 187 (третья у меня в сообщении). До этого переменная
$write обнуляется, а после в методе socket_select уже стоит переменная
$writ. Есть подозрение что пропущена
e в конце названия переменной, т.к. более нигде переменной $writ не нашел.
Код: Выделить всё
$write = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $writ, $except, 0, 1);
И цикл cycle_connect.php занимает 60-90% процессорных ресурсов на Orange Pi One. Именно поэтому и полез туда посмотреть. в логах примерно такое:
Код: Выделить всё
2017-04-24 08:23:30 Listening...
2017-04-24 08:23:31 Listening...
2017-04-24 08:23:32 Listening...
2017-04-24 08:23:33 Listening...
2017-04-24 08:23:34 Listening...
2017-04-24 08:23:35 Listening...
2017-04-24 08:23:36 Listening...
2017-04-24 08:23:37 Listening...
2017-04-24 08:23:38 Listening...
2017-04-24 08:23:39 Listening...
2017-04-24 08:23:40 Listening...
2017-04-24 08:23:40 Updating auto update item (id 74 time 30): <#LANG_GENERAL_EVENTS_LOG#> (code)
2017-04-24 08:23:40 Updating auto update item (id 78 time 10): <#LANG_TEXT_BOX#>
2017-04-24 08:23:40 Updating auto update item (id 80 time 5): <#LANG_SLIDER_BOX#>
2017-04-24 08:23:40 Updating auto update item (id 105 time 30): <#LANG_GENERAL_INSIDE#> (data)
2017-04-24 08:23:40 Updating auto update item (id 97 time 10): State
2017-04-24 08:23:40 Incoming: PING!
2017-04-24 08:23:40 Sending: PONG!
OK.
2017-04-24 08:23:40 Incoming: RECEIVED: PONG!
2017-04-24 08:23:41 Listening...
2017-04-24 08:23:42 Listening...
2017-04-24 08:23:43 Listening...
2017-04-24 08:23:44 Listening...
2017-04-24 08:23:45 Listening...
2017-04-24 08:23:46 Listening...
2017-04-24 08:23:47 Listening...
2017-04-24 08:23:48 Listening...
2017-04-24 08:23:49 Listening...
2017-04-24 08:23:50 Listening...
2017-04-24 08:23:51 Listening...
2017-04-24 08:23:51 Updating auto update item (id 78 time 10): <#LANG_TEXT_BOX#>
2017-04-24 08:23:51 Updating auto update item (id 80 time 5): <#LANG_SLIDER_BOX#>
2017-04-24 08:23:51 Updating auto update item (id 97 time 10): State
2017-04-24 08:23:52 Listening...
2017-04-24 08:23:53 Listening...
2017-04-24 08:23:54 Listening...
2017-04-24 08:23:55 Listening...
2017-04-24 08:23:56 Listening...
2017-04-24 08:23:57 Listening...
2017-04-24 08:23:58 Listening...
2017-04-24 08:23:59 Listening...
2017-04-24 08:24:00 Listening...
2017-04-24 08:24:01 Listening...
Проблему загрузки проца этим скриптом решил ужаснейшим костылем - задержкой во вложенном бесконечном цикле в другой бесконечный цикл в 5 сек.
Не могу разобраться каким образом происходит выход из бесконечных циклов. Получается что он каждый такт крутится полностью и при этом во первых забивает лог (за день 24 Мб) а во вторых грузит проц.
На само деле тоже все силюсь понять, почему "Пустая установка" так жреп процессор именно этим скриптом

- Снимок экрана 2017-04-24 в 8.32.00.png (140.49 КБ) 11731 просмотр
Re: Ошибки/проблемы/неисправности системы
Добавлено: Пн апр 24, 2017 8:39 am
dfrozen
Нужна подсказка
Прдыстория такова, после установки и минимальной настройки понадобилось воспользоваться Timer-> onNewHour - Сначало удивило, что метод был пуст, ну внес туда нужные строки и как выяснилось метод не запускается
Код: Выделить всё
//Получаем Час для сцен
$time1 = explode(":", gg("ThisComputer.timeNow") );
sg("ThisComputer.timeH",$time1[0]);
//Проверка Почты России
$PostTracker = new app_PostTracker();
$PostTracker->updateStatuses();
Как бы ни одно из обновлений не выполняется((
При ручном запуске еще и вываливается куча ощибок
Код: Выделить всё
Warning: include_once(./modules/app_yaweather/app_yaweather.class.php): failed to open stream: No such file or directory in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 6
Warning: include_once(): Failed opening './modules/app_yaweather/app_yaweather.class.php' for inclusion (include_path='.:/usr/share/php') in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 6
Fatal error: Uncaught Error: Class 'app_yaweather' not found in /var/www/modules/objects/objects.class.php(530) : eval()'d code:7 Stack trace: #0 /var/www/modules/objects/objects.class.php(530): eval() #1 /var/www/modules/objects/objects.class.php(487): objects->callMethod('onNewHour', Array, 1) #2 /var/www/objects/index.php(152): objects->callMethod('onNewHour', Array) #3 {main} thrown in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 7
Та Яндекс погода у меня не становлена, проба была с установкой этого модуля с Маркета, но так как Yandex давно прикрыл xml, удалил, похоже хвосты остались после сноса модуля- Как чистить ???
PS А не имеет ли смысл убрать с маркета не рабочие модули, а то я уже себе систему ими покорежил от души
PSS Вернул обратно модуль app_yaweather )) и-Timer-> onNewHour заратотало без ошибок, как избавиться от ненужной и не рабочей яндекспогоды?
Re: Ошибки/проблемы/неисправности системы
Добавлено: Ср апр 26, 2017 4:34 am
xneo
dfrozen писал(а):Нужна подсказка
Прдыстория такова, после установки и минимальной настройки понадобилось воспользоваться Timer-> onNewHour - Сначало удивило, что метод был пуст, ну внес туда нужные строки и как выяснилось метод не запускается
Код: Выделить всё
//Получаем Час для сцен
$time1 = explode(":", gg("ThisComputer.timeNow") );
sg("ThisComputer.timeH",$time1[0]);
//Проверка Почты России
$PostTracker = new app_PostTracker();
$PostTracker->updateStatuses();
Как бы ни одно из обновлений не выполняется((
При ручном запуске еще и вываливается куча ощибок
Код: Выделить всё
Warning: include_once(./modules/app_yaweather/app_yaweather.class.php): failed to open stream: No such file or directory in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 6
Warning: include_once(): Failed opening './modules/app_yaweather/app_yaweather.class.php' for inclusion (include_path='.:/usr/share/php') in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 6
Fatal error: Uncaught Error: Class 'app_yaweather' not found in /var/www/modules/objects/objects.class.php(530) : eval()'d code:7 Stack trace: #0 /var/www/modules/objects/objects.class.php(530): eval() #1 /var/www/modules/objects/objects.class.php(487): objects->callMethod('onNewHour', Array, 1) #2 /var/www/objects/index.php(152): objects->callMethod('onNewHour', Array) #3 {main} thrown in /var/www/modules/objects/objects.class.php(530) : eval()'d code on line 7
Та Яндекс погода у меня не становлена, проба была с установкой этого модуля с Маркета, но так как Yandex давно прикрыл xml, удалил, похоже хвосты остались после сноса модуля- Как чистить ???
PS А не имеет ли смысл убрать с маркета не рабочие модули, а то я уже себе систему ими покорежил от души
PSS Вернул обратно модуль app_yaweather )) и-Timer-> onNewHour заратотало без ошибок, как избавиться от ненужной и не рабочей яндекспогоды?
У меня там были ошметки от яндекс погоды - вычистил их и никаких ошибок (хотя их и раньше не было)
Re: Ошибки/проблемы/неисправности системы
Добавлено: Ср апр 26, 2017 5:56 am
xneo
Нашлась еще одна ошибка в цикле ping (вернее в модуле от этого цикла). В файле var/www/modules/pinghosts/pinghosts.class.php (у вас может быть другой путь если вы ставили не в каталог www) в функции checkAllHosts (186 строка) есть запрос из базы и после него формирование цикла for. Так вот он выполняется лишний раз каждый раз т.к. это цикл с постусловием.
По хорошему его бы заменить на цикл while но я (ленивый/утро раннее/думать не охото) поступил иначе: добавил после него условие проверки наличия чего либо в имени/адресе хоста который будет проверяться. В итоге я добавил после 192 строки новую строку с таким содержанием:
и после строки 331 (до вставки строки выше это была 330 строка (хотя там особо без разницы - кругом скобки)) вставил строку с таким содержанием:
В итоге полный листинг этого фала теперь такой:
Код: Выделить всё
<?php
/**
* Pinghosts
*
* Pinghosts
*
* @package MajorDoMo
* @author Serge Dzheigalo <[email protected]> http://smartliving.ru/
* @version 0.2 (wizard, 00:01:48 [Jan 06, 2011])
*/
Define('DEF_TYPE_OPTIONS', '0=PING (HOST)|1=WEB PAGE (URL)'); // options for 'HOST TYPE'
//
//
class pinghosts extends module {
/**
* pinghosts
*
* Module class constructor
*
* @access private
*/
function pinghosts() {
$this->name="pinghosts";
$this->title="<#LANG_MODULE_PINGHOSTS#>";
$this->module_category="<#LANG_SECTION_DEVICES#>";
$this->checkInstalled();
}
/**
* saveParams
*
* Saving module parameters
*
* @access public
*/
function saveParams($data=0) {
$p=array();
if (IsSet($this->id)) {
$p["id"]=$this->id;
}
if (IsSet($this->view_mode)) {
$p["view_mode"]=$this->view_mode;
}
if (IsSet($this->edit_mode)) {
$p["edit_mode"]=$this->edit_mode;
}
if (IsSet($this->tab)) {
$p["tab"]=$this->tab;
}
return parent::saveParams($p);
}
/**
* getParams
*
* Getting module parameters from query string
*
* @access public
*/
function getParams() {
global $id;
global $mode;
global $view_mode;
global $edit_mode;
global $tab;
if (isset($id)) {
$this->id=$id;
}
if (isset($mode)) {
$this->mode=$mode;
}
if (isset($view_mode)) {
$this->view_mode=$view_mode;
}
if (isset($edit_mode)) {
$this->edit_mode=$edit_mode;
}
if (isset($tab)) {
$this->tab=$tab;
}
}
/**
* Run
*
* Description
*
* @access public
*/
function run() {
global $session;
$out=array();
if ($this->mobile) {
$out['MOBILE']=1;
}
if ($this->action=='admin') {
$this->admin($out);
} else {
$this->usual($out);
}
if (IsSet($this->owner->action)) {
$out['PARENT_ACTION']=$this->owner->action;
}
if (IsSet($this->owner->name)) {
$out['PARENT_NAME']=$this->owner->name;
}
$out['VIEW_MODE']=$this->view_mode;
$out['EDIT_MODE']=$this->edit_mode;
$out['MODE']=$this->mode;
$out['ACTION']=$this->action;
$out['TAB']=$this->tab;
if ($this->single_rec) {
$out['SINGLE_REC']=1;
}
$this->data=$out;
$p=new parser(DIR_TEMPLATES.$this->name."/".$this->name.".html", $this->data, $this);
$this->result=$p->result;
}
/**
* BackEnd
*
* Module backend
*
* @access public
*/
function admin(&$out) {
if (isset($this->data_source) && !$_GET['data_source'] && !$_POST['data_source']) {
$out['SET_DATASOURCE']=1;
}
if ($this->data_source=='pinghosts' || $this->data_source=='') {
if ($this->view_mode=='' || $this->view_mode=='search_pinghosts') {
$this->search_pinghosts($out);
}
if ($this->view_mode=='edit_pinghosts') {
$this->edit_pinghosts($out, $this->id);
}
if ($this->view_mode=='delete_pinghosts') {
$this->delete_pinghosts($this->id);
$this->redirect("?");
}
}
}
/**
* FrontEnd
*
* Module frontend
*
* @access public
*/
function usual(&$out) {
$this->admin($out);
}
/**
* pinghosts search
*
* @access public
*/
function search_pinghosts(&$out) {
require(DIR_MODULES.$this->name.'/pinghosts_search.inc.php');
}
/**
* pinghosts edit/add
*
* @access public
*/
function edit_pinghosts(&$out, $id) {
require(DIR_MODULES.$this->name.'/pinghosts_edit.inc.php');
}
/**
* pinghosts delete record
*
* @access public
*/
function delete_pinghosts($id) {
$rec=SQLSelectOne("SELECT * FROM pinghosts WHERE ID='$id'");
// some action for related tables
SQLExec("DELETE FROM pinghosts WHERE ID='".$rec['ID']."'");
}
/**
* Title
*
* Description
*
* @access public
*/
function checkAllHosts($limit=1000) {
// ping hosts
$pings=SQLSelect("SELECT * FROM pinghosts WHERE CHECK_NEXT<=NOW() ORDER BY CHECK_NEXT LIMIT ".$limit);
$total=count($pings);
for($i=0;$i<$total;$i++) {
$host=$pings[$i];
if ($host['HOSTNAME']!="") {
echo "Checking ".$host['HOSTNAME']."\n";
$online_interval=$host['ONLINE_INTERVAL'];
if (!$online_interval) {
$online_interval=60;
}
$offline_interval=$host['OFFLINE_INTERVAL'];
if (!$offline_interval) {
$offline_interval=$online_interval;
}
if ($host['STATUS']=='1') {
$host['CHECK_NEXT']=date('Y-m-d H:i:s', time()+$online_interval);
} else {
$host['CHECK_NEXT']=date('Y-m-d H:i:s', time()+$offline_interval);
}
SQLUpdate('pinghosts', $host);
$online=0;
// checking
if (!$host['TYPE']) {
//ping host
$online=ping(processTitle($host['HOSTNAME']));
} else {
//web host
$online=getURL(processTitle($host['HOSTNAME']), 0);
SaveFile("./cached/host_".$host['ID'].'.html', $online);
if ($host['SEARCH_WORD']!='' && !is_integer(strpos($online, $host['SEARCH_WORD']))) {
$online=0;
}
if ($online) {
$online=1;
}
}
if ($online) {
$new_status=1;
} else {
$new_status=2;
}
$old_status=$host['STATUS'];
if ($host['COUNTER_REQUIRED']) {
$old_status_expected=$host['STATUS_EXPECTED'];
$host['STATUS_EXPECTED']=$new_status;
if ($old_status_expected!=$host['STATUS_EXPECTED']) {
$host['COUNTER_CURRENT']=0;
$host['LOG']=date('Y-m-d H:i:s').' tries counter reset (status: '.$host['STATUS_EXPECTED'].')'."\n".$host['LOG'];
} elseif ($host['STATUS']!=$host['STATUS_EXPECTED']) {
$host['COUNTER_CURRENT']++;
$host['LOG']=date('Y-m-d H:i:s').' tries counter increased to '.$host['COUNTER_CURRENT'].' (status: '.$host['STATUS_EXPECTED'].')'."\n".$host['LOG'];
}
if ($host['COUNTER_CURRENT']>=$host['COUNTER_REQUIRED']) {
$host['STATUS']=$host['STATUS_EXPECTED'];
$host['COUNTER_CURRENT']=0;
} else {
$interval=min($online_interval, $offline_interval, 20);
$online_interval=$interval;
$offline_interval=$interval;
}
} else {
$host['STATUS']=$new_status;
$host['STATUS_EXPECTED']=$host['STATUS'];
$host['COUNTER_CURRENT']=0;
}
$host['CHECK_LATEST']=date('Y-m-d H:i:s');
if ($host['LINKED_OBJECT']!='' && $host['LINKED_PROPERTY']!='') {
setGlobal($host['LINKED_OBJECT'].'.'.$host['LINKED_PROPERTY'], $host['STATUS']);
}
if ($host['STATUS']=='1') {
$host['CHECK_NEXT']=date('Y-m-d H:i:s', time()+$online_interval);
} else {
$host['CHECK_NEXT']=date('Y-m-d H:i:s', time()+$offline_interval);
}
if ($old_status!=$host['STATUS']) {
if ($host['STATUS']==2) {
$host['LOG']=date('Y-m-d H:i:s').' Host is offline'."\n".$host['LOG'];
} elseif ($host['STATUS']==1) {
$host['LOG']=date('Y-m-d H:i:s').' Host is online'."\n".$host['LOG'];
}
}
$tmp=explode("\n", $host['LOG']);
$total=count($tmp);
if ($total > 30) {
$tmp=array_slice($tmp, 0, 30);
$host['LOG']=implode("\n", $tmp);
}
SQLUpdate('pinghosts', $host);
if ($old_status!=$host['STATUS'] && $old_status!=0) {
// do some status change actions
$run_script_id=0;
$run_code='';
if ($old_status==2 && $host['STATUS']==1) {
// got online
if ($host['SCRIPT_ID_ONLINE']) {
$run_script_id=$host['SCRIPT_ID_ONLINE'];
} elseif ($host['CODE_ONLINE']) {
$run_code=$host['CODE_ONLINE'];
}
} elseif ($old_status==1 && $host['STATUS']==2) {
// got offline
if ($host['SCRIPT_ID_OFFLINE']) {
$run_script_id=$host['SCRIPT_ID_OFFLINE'];
} elseif ($host['CODE_OFFLINE']) {
$run_code=$host['CODE_OFFLINE'];
}
}
if ($run_script_id) {
//run script
runScript($run_script_id);
} elseif ($run_code) {
//run code
try {
$code=$run_code;
$success=eval($code);
if ($success===false) {
DebMes("Error in hosts online code: ".$code);
registerError('ping_hosts', "Error in hosts online code: ".$code);
}
} catch(Exception $e){
DebMes('Error: exception '.get_class($e).', '.$e->getMessage().'.');
registerError('ping_hosts', get_class($e).', '.$e->getMessage());
}
}
}
} //endif ($host['HOSTNAME']!="")
}
}
/**
* Install
*
* Module installation routine
*
* @access private
*/
function install($parent_name="") {
parent::install($parent_name);
}
/**
* Uninstall
*
* Module uninstall routine
*
* @access public
*/
function uninstall() {
SQLExec('DROP TABLE IF EXISTS pinghosts');
parent::uninstall();
}
/**
* dbInstall
*
* Database installation routine
*
* @access private
*/
function dbInstall($data) {
/*
pinghosts - Pinghosts
*/
$data = <<<EOD
pinghosts: ID int(10) unsigned NOT NULL auto_increment
pinghosts: TITLE varchar(255) NOT NULL DEFAULT ''
pinghosts: HOSTNAME varchar(255) NOT NULL DEFAULT ''
pinghosts: TYPE int(30) NOT NULL DEFAULT '0'
pinghosts: STATUS int(3) NOT NULL DEFAULT '0'
pinghosts: SEARCH_WORD varchar(255) NOT NULL DEFAULT ''
pinghosts: CHECK_LATEST datetime
pinghosts: CHECK_NEXT datetime
pinghosts: SCRIPT_ID_ONLINE int(10) NOT NULL DEFAULT '0'
pinghosts: CODE_ONLINE text
pinghosts: SCRIPT_ID_OFFLINE int(10) NOT NULL DEFAULT '0'
pinghosts: CODE_OFFLINE text
pinghosts: OFFLINE_INTERVAL int(10) NOT NULL DEFAULT '0'
pinghosts: ONLINE_INTERVAL int(10) NOT NULL DEFAULT '0'
pinghosts: LINKED_OBJECT varchar(255) NOT NULL DEFAULT ''
pinghosts: LINKED_PROPERTY varchar(255) NOT NULL DEFAULT ''
pinghosts: COUNTER_CURRENT int(10) NOT NULL DEFAULT '0'
pinghosts: COUNTER_REQUIRED int(10) NOT NULL DEFAULT '0'
pinghosts: STATUS_EXPECTED int(3) NOT NULL DEFAULT '0'
pinghosts: LOG text
EOD;
parent::dbInstall($data);
}
// --------------------------------------------------------------------
}
/*
*
* TW9kdWxlIGNyZWF0ZWQgSmFuIDA2LCAyMDExIHVzaW5nIFNlcmdlIEouIHdpemFyZCAoQWN0aXZlVW5pdCBJbmMgd3d3LmFjdGl2ZXVuaXQuY29tKQ==
*
*/
?>