Добрый день.
Как можно проводить поиск по конкретным значениям какого-либо параметра в нодах?
В ветке Делимся скриптами сразу в шапке имелся скрипт поиска "в данном случае по snmp sysDescription коммутатора"
=================
Edited
В таком виде
Как можно проводить поиск по конкретным значениям какого-либо параметра в нодах?
В ветке Делимся скриптами сразу в шапке имелся скрипт поиска "в данном случае по snmp sysDescription коммутатора"
Code Select
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
//println ("Name: " . n->name);
if (n->name != null && classof(n) == "Node")
{
if (n->sysDescription ~= "^D-Link DES-3028" && n->comments == "")
{
println ("Name: " . n->name . ", sysDescription: " . n->sysDescription . ", IP: " . n->ipAddr);
}
}
GetTree(n->id);
}
}
GetTree(2);Который я попытался перенаправить на поиск нод, в которых Description на каком-то из интерфейсов имеет WAN. Code Select
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
//println ("Name: " . n->name);
if (n->name != null && classof(n) == "Node")
{
if (n->interfaces.description ~= "WAN" && n->comments == "")
{
println ("Name: " . n->name . ", interfaces.description: " . n->interfaces.description . ", IP: " . n->ipAddr);
}
}
GetTree(n->id);
}
}
GetTree(2);Но оба скрипта падают в syntax error на линию 13. Что с того момента изменилось в синтаксе?=================
Edited
В таком виде
Code Select
sub GetTree(nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
if (n->name != null && classof(n) == "Node")
{
ifaces = n->interfaces;
foreach (iface : ifaces)
{
if (iface->description ~= "WAN")
{
println("Name: " , n->name , ", interface: " , iface->description , ", IP: " , iface->ipAddr);
}
}
GetTree(n->id);
}
}
}
GetTree(2);выполнение его проходит, но результат никакой не получаетсяCode Select
*** FINISHED ***
Result: