0

我正在尝试执行snmpwalk以获取设备每个接口上的错误数量(通过 DNS 名称)。

snmpwalk我可以从 Debian机器上成功运行以下命令:

snmpwalk -v2c -c public atlanta-r1 1.3.6.1.2.1.2.2.1.14

结果:

IF-MIB::ifInErrors.1 = Counter32: 0<br>
IF-MIB::ifInErrors.2 = Counter32: 0<br>
IF-MIB::ifInErrors.3 = Counter32: 0<br>
....

我正在尝试使用pysnmp. 我在让它工作时遇到了一些麻烦。当我运行它时,我不断得到一个权限被拒绝。任何人都可以帮我解决我的代码吗?谢谢

from pysnmp.entity.rfc3413.oneliner import cmdgen

cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBindTable = cmdGen.nextCmd(
        cmdgen.CommunityData('public'),
        cmdgen.UdpTransportTarget(('atlanta-r1', 161)),
        '1.3.6.1.2.1.2.2.1.14',
)

if errorIndication:
    print(errorIndication)
else:
    if errorStatus:
        print('%s at %s' % (
            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()))
4

1 回答 1

-2

此源代码是正确的,并且可以通过替换主机名在我的系统上运行。尝试使用 sudo/administrator 权限执行此脚本。

于 2018-11-27T05:59:10.360 回答