我现在需要从 Zabbix 的命令输出中获取有关 LTE/3G 连接的一些信息。路由器板是 6.47.7 版本。
[admin@Mikrotik_24] > interface lte info lte1 once
pin-status: ok
registration-status: registered
functionality: full
manufacturer: "MikroTik"
model: "R11e-LTE"
revision: "MikroTik_CP_2.160.000_v008"
current-operator: MTS
psc: 295
lac: 5205
current-cellid: 241903616
access-technology: 3G
session-uptime: 21h3m18s
imei: 355654090621868
imsi: 250016652966098
uicc: 89701011266529660988
earfcn: 10762
ecno: 0dB
rssi: -95dBm
例如“rssi”、“access-technology”、“uicc”等。
他们自己描述的这种命令的问题 - 数据无穷无尽,你不能轻易抓住它。 https://wiki.mikrotik.com/wiki/Manual:Scripting_Tips_and_Tricks#Get_values_from_looped_interactive_commands_like_.22monitor.22
所以我有一个脚本来获取一些值作为全局变量。
/interface lte info lte1 once do={:global at $"access-technology" }
和终端中的 ":put $at" 工作正常。但我认为通过执行另一个脚本来显示这个生成的 var $at 来获取 SNMP 的结果。他们为“脚本结果”目的而使用 OID 是可能的。问题是如何在脚本中输出这个变量?
[admin@Mikrotik_24] > /system script export compact
# oct/31/2020 01:52:57 by RouterOS 6.47.7
# software id = PW8X-NNQ5
#
# model = RouterBOARD wAP R-2nD
/system script
add dont-require-permissions=no name=at owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
"/interface lte info lte1 once do={:global at \$\"access-technology\" } \r\
\n"
add dont-require-permissions=no name=at_result owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":put \$at"
[admin@Mikrotik_24] > :environment print
at="3G"
[admin@Mikrotik_24] > /system script environment print
# NAME VALUE
0 at 3G
[admin@Mikrotik_24] > /system script run at_result
[admin@Mikrotik_24] >
你看,/system script run at_result 是空的,但在终端我可以看到它
[admin@Mikrotik_24] > :put $at
3G
[admin@Mikrotik_24] >