В настоящее время у меня есть сценарий, который опрашивает несколько oid на нескольких устройствах с помощью PySNMP. Он считывает список хостов из файла, и для некоторых хостов необходимо опросить 3 или 4 идентификатора, на данный момент он делает это последовательно, поэтому, чтобы сделать его более эффективным, я хочу выполнить getbulk, поэтому я опрашиваю только каждый хост один раз.
Я провел несколько поисков по этому поводу и могу найти множество примеров с использованием pysnmp и snmp v2, но я не могу найти пример с snmpv3. Я пробовал приведенный ниже тестовый сценарий, но он вызывает ошибку, так что может кто-нибудь взглянуть и сообщить мне, что я делаю не так, пожалуйста? Мой тестовый сценарий выглядит так:
from pysnmp.entity.rfc3413.oneliner import cmdgen
host='10.0.0.1'
incount = '.1.3.6.1.2.1.31.1.1.1.6.16'
outcount ='.1.3.6.1.2.1.31.1.1.1.10.16'
errorIndication, errorStatus, errorIndex,
varBindTable = cmdgen.CommandGenerator().bulkCmd(
UsmUserData('snmp_user', 'password', 'password',
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((host, 161)),
0,
25,
(incount),
(outcount),
)
if errorIndication:
print errorIndication
else:
if errorStatus:
print '%s at %s\n' % (
errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex)-1] or '?'
)
else:
for varBindTableRow in varBindTable:
for name, val in varBindTableRow:
print '%s = %s' % (name.prettyPrint(), val.prettyPrint())
и ошибка:
Traceback (most recent call last):
File "./multiget.py", line 7, in <module>
errorIndication, errorStatus, errorIndex,
NameError: name 'errorIndication' is not defined
Это в значительной степени падает на первом препятствии, поэтому я, очевидно, ошибся синтаксисом, но, как я уже сказал, я не смог найти пример этого с snmpv3.
Спасибо
Ed