LINUX.ORG.RU

Python & SNMP


0

1

Подскажите пожалуйста библиотеки или другие способы работы из python-а с SNMP.

Попробывал связаться с pysnmp, не проканало (куча ошибок, да и способ обращения с этой библиотекой из доков, что то не обрадовал, как то все через чур наворочено). Проще уж выполнять шеловские команды стандартные и их обрабатывать. хочеться чего нить попроще и по «красивее» =)


Неужели сложно? ;-)

from pysnmp.entity.rfc3413.oneliner import cmdgen

errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().getCmd( cmdgen.CommunityData('test-agent', 'public'), cmdgen.UdpTransportTarget(('localhost', 161)), '1.3.6.1.2.1.1.1.0' )

print varBinds

anonymous
()

Шэлловские команды это просто и красиво.
Кроме того это повышает портируемость и улучшает поддержку.

ИМХО, не стоит лишний раз тащить библиотеки туда, где без них можно обойтись. А небольшой админский скрипт для SNMP это как раз тот случай. Возможно что эта задача даже не для питона, а для баша.

dmitryalexeeff
()
Ответ на: комментарий от power

Это скрипач не нужен, особенно без кц.

А баш очень даже нужен, так как, вкупе с cli - утилитами, предоставляет высокий уровень абстракции, позволяя решать типовые одминские проблемы без погрязания в языковых особенностях и ковыряния во всяких библиотеках с кривым API. С учётом того что каждый автор каждой библиотеки стремится не просто создать своё API, а придумывает свою концепцию использования и вызовов.

Вот за такое, к примеру, можно бы и руки оторвать:

cmdgen.UdpTransportTarget(('localhost', 161)), '1.3.6.1.2.1.1.1.0' )

dmitryalexeeff
()
Ответ на: комментарий от dmitryalexeeff

Согласен, полное безобразие!

Я бы сделал так:

5 LET HOST=127.0.0.1 10 LET OID=1.3.6.1.2.1.1 20 SNMPGET HOST, OID 30 PRINT REPLY 70 GO TO 5 99 END

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.