NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Dillinger on January 05, 2010, 10:02:47 AM

Title: Использование Instance в скрипте.
Post by: Dillinger on January 05, 2010, 10:02:47 AM
Подскажите пожалуйста как мне использовать значение Instance DCI в скрипте?
Пробую так:
GetDCIValue($node, FindDCIByName($node, "Disk.Total(" && %6 && ")"));
Однако получаю ошибку syntax error, unexpected '%'
Title: Re: Использование Instance в скрипте.
Post by: Victor Kirhenshtein on February 23, 2010, 11:12:17 PM
Esli pri obrabotke sobitija, to dolzno rabotat' tak:

GetDCIValue($node, FindDCIByName($node, "Disk.Total(" . $6 . ")"));
Title: Re: Использование Instance в скрипте.
Post by: Dillinger on March 09, 2010, 12:33:49 PM
И в таком варианте тоже не работает. Генерируется Minor Alarm на сервере NETXMS c полем Message: Script (LS::P1) execution error: Error 5 in line 3: Invalid operation with NULL value.
Вообще у меня стоит задача сформировать и послать по email сообщение, генерируемое по treshold DCI "Percentage of free disk space".

условие treshold: Percentage of free disk space < 10%
event: _VOL_SPACE_LOW
message: Warning! %2 is %4%% (%[LS::P1]). Please free some space!
скрипт LS::P1

sub main()
{
   return GetDCIValue($node, FindDCIByName($node, "Disk.Total(" . $6 . ")"));
}



Title: Re: Использование Instance в скрипте.
Post by: Victor Kirhenshtein on March 09, 2010, 12:58:00 PM
A kak vigljadit parametr Disk.Total i chto propisano v pole "instance" dlja parametra so skriptom? Problema pohoze v tom, chto formiruetsja nepravil'noe imja parametra, i FindDCIByName vozvraschaet NULL.
Title: Re: Использование Instance в скрипте.
Post by: Dillinger on March 09, 2010, 05:28:01 PM
DCI - Collection - Data - Parameter = Disk.FreePerc(D:)
DCI - Thresholds - Instance = D:

Т.е. нужно подставить Instance чтобы получить универсальный скрипт для различных дисков/томов (C:, D:, SYS и т.д.)
Title: Re: Использование Instance в скрипте.
Post by: Victor Kirhenshtein on March 10, 2010, 10:20:29 PM
A parametr Disk.Total(D:) sobiraetsja?
Title: Re: Использование Instance в скрипте.
Post by: Dillinger on March 11, 2010, 09:00:31 AM
DCI Disk.Total(D:) привязан к узлу, также как и Disk.FreePerc(D:)