Может кто-нибудь знает как можно получить результат из
/tool snmp-get address=192.168.0.1 oid=.1.3.6.1.2.1.1.6.0
в переменную (лучше) или на худой конец в файл ?
В консоли такая команда работает, по указанному адресу запрашиваются данные указанной OID и выводятся в консоль.
Но вот так работает (скрипт ошибки не выдает и выполняется до конца), но значение не присваивает (переменная а остается пустой):
:local a [/tool snmp-get address=192.168.0.1 oid=.1.3.6.1.2.1.1.6.0]
Также не прокатывает и с выводом в файл:
/file set "Name" contents=[:put [/tool snmp-get address=192.168.0.1 oid=.1.3.6.1.2.1.1.6.0]];
Пишется пустой файл.
Вопрос по конструкции в команде-скрипте
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
Вот, что ответили в Микротик-support:
Hello,
V dannij moment njetu takoj vozmozhnostji v skriptah.
Best regards,
Maris B.
--
MikroTik.com
Hello,
V dannij moment njetu takoj vozmozhnostji v skriptah.
Best regards,
Maris B.
--
MikroTik.com
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
А очень жаль ! Можно было бы через OID из Микротика опрашивать и управлять многими устройствами в сети (кто поддерживает SNMP), а также операционками ...
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
А оказывается можно (Автор Rextended): https://forum.mikrotik.com/viewtopic.ph ... 69#p876969
Код: Выделить всё
/file remove [find where name="testgetsnmp.txt"]
{
:local jobid [:execute file=testgetsnmp.txt \
script="/tool snmp-get tries=3 try-timeout=3s address=192.168.0.1 port=161 version=2c \
community=public oid=1.3.6.1.4.1.14988.1.1.3.8.0"]
:put "Waiting the end of process for file testgetsnmp.txt to be ready, max 20 seconds..."
:global Gltesec 0
:while (([:len [/sys script job find where .id=$jobid]] = 1) && ($Gltesec < 20)) do={
:set Gltesec ($Gltesec + 1)
:delay 1s
:put "waiting... $Gltesec"
}
:put "Done. Elapsed Seconds: $Gltesec\r\n"
:if ([:len [/file find where name="testgetsnmp.txt"]] = 1) do={
:local filecontent [/file get [/file find where name="testgetsnmp.txt"] contents]
:if ([:len $filecontent] = 83) do={:put "No result"; :return ""}
:local oidstart ([:find $filecontent "\r\n" -1] + 2)
:local oidend [:find $filecontent " " $oidstart]
:local typestart ($oidstart + [:find $filecontent "TYPE" -1])
:local typeend [:find $filecontent " " $typestart]
:local valuestart ($oidstart + [:find $filecontent "VALUE" -1])
:local valueend [:find $filecontent " " $valuestart]
:local getoid [:pick $filecontent $oidstart $oidend]
:local gettype [:pick $filecontent $typestart $typeend]
:local getvalue [:pick $filecontent $valuestart $valueend]
:put "The >$getoid< return >$gettype< value >$getvalue<"
} else={
:put "File not created."
}
}
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
теперь можно напрямую, без записи в файл:
# NEW in Ros 7.8
:put [/tool/snmp-get address=127.0.0.1 oid=1.3.6.1.4.1.14988.1.1.3.8.0 community=public as-value ]
# oid=1.3.6.1.4.1.14988.1.1.3.8.0;type=integer;value=517
# NEW in Ros 7.8
:put [/tool/snmp-get address=127.0.0.1 oid=1.3.6.1.4.1.14988.1.1.3.8.0 community=public as-value ]
# oid=1.3.6.1.4.1.14988.1.1.3.8.0;type=integer;value=517
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947