2017-05-17 3 views
0

私のスイッチはCatalyst 2960-xシリーズです。私は既にSNMPで設定しています。今はPySNMPを使用していますが、Imはこれで新しくなりました。これは "sudo snmpset -v 2c -c SNMPv2-SMI :: mib-2.105.1.1.1.3.1.13 i 2"です。しかし、私はそれをやり遂げていない、誰かが助けてください。スイッチのポートをシャットダウンしてシャットダウンしないようにしたい

from pysnmp.hlapi import* 
setcommunity = 'EuricoFerreira' 
host = '192.168.150.231' 
port = 13 

snmp_engine = SnmpEngine() 

set_gen = setCmd(snmp_engine, 
       CommunityData(setcommunity), 
       UdpTransportTarget((host, 161)), 
       ContextData(), 
       ObjectType(ObjectIdentity('SNMPv2-SMI', 'mib-2', '105.1.1.1.3.1.%d' % port), Integer(2))) 

errorIndication, errorStatus, errorIndex, varBinds = next(set_gen) 
if errorIndication or errorStatus: 
    print('SNMP error: %s' % errorIndication or errorStatus) 
else: 
    print('SNMP succeeded') 

このコードは、私にこのエラーを与えている:

" Traceback (most recent call last): 
  File "<string>", line 878, in writeTest 
  File "<string>", line 570, in writeTest 
  File "<string>", line 469, in writeTest 
  File "<string>", line 766, in getBranch 
pysnmp.smi.error.NoSuchInstanceError: NoSuchInstanceError({'idx': 0, 'name': (1, 3, 6, 1, 6, 3, 18, 1, 1, 1, 8, 115, 45, 55, 50, 50, 51, 54, 51, 55, 52, 52)}) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
  File "/home/pi/Downloads/pysnmp-4.3.2/snmpTest.py", line 17, in <module> 
    errorIndication, errorStatus, errorIndex, varBinds = next(set_gen) 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 210, in setCmd 
    lookupMib=options.get('lookupMib', True))) 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/hlapi/asyncore/cmdgen.py", line 231, in setCmd 
    addrName, paramsName = lcd.configure(snmpEngine, authData, transportTarget) 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/hlapi/lcd.py", line 44, in configure 
    authData.securityName 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/entity/config.py", line 71, in addV1System 
    ((snmpCommunityEntry.name + (8,) + tblIdx, 'destroy'),) 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/smi/instrum.py", line 250, in writeVars 
    return self.flipFlopFsm(self.fsmWriteVar, vars, acInfo) 
  File "/home/pi/Downloads/pysnmp-4.3.2/pysnmp/smi/instrum.py", line 218, in flipFlopFsm 
    rval = f(tuple(name), val, idx, acInfo) 
  File "<string>", line 470, in writeTest 
  File "<string>", line 1117, in writeTest 
  File "<string>", line 1088, in __delegate 
  File "<string>", line 886, in writeTest 
  File "<string>", line 793, in createTest 
  File "<string>", line 699, in createTest 
  File "<string>", line 591, in setValue 
  File "<string>", line 289, in setValue 
AttributeError: 'RowStatus' object has no attribute 'hasValue'" 

答えて

0

最新pyasn1/pysnmpを使用していることを確認してください。トレースバックから、古いpyasn1を実行しているように見えます。

+0

私はpyasn1のバージョンではなかったし、私はpysnm 4.3.2のバージョンでもあったが、それはバージョン4.3.5でなければならなかった。 –

+0

もう1つ質問がありますが、スイッチポートの状態を知るにはどうしたらいいですか? ポートをオンまたはオフにできますか? –

+0

SNMP SETの代わりにSNMP GETコマンドを使用する必要があります。 pysnmp用語では、 'getCmd'の' setCmd'を変更し、 'ObjectType(ObjectIdentity( 'SNMPv2-SMI'、 'mib-2'、 '105.1.1.1.3.1。%d'%port)の値部分を削除してください。 '。そのようにして、現在のポート状態を特定の状態に設定するのではなく、読み込みます。 –

関連する問題