Я хотел бы сделать следующее, но я не уверен, что использую лучший метод:
Perl-скрипт, работающий на машине Sparc / Solaris 10, должен ожидать входящих пакетов SNMP-ловушек (например, на порту 162). Когда он получает ловушку, он должен декодировать ее и выполнить некоторую обработку, а затем возобновить ожидание следующей ловушки.
Я посмотрел на Net :: SNMP Дэвида М. Тауна, но думаю, что он позволяет только отправлять запросы и получать ответы. Я не могу найти метод для ожидания спонтанных сообщений о ловушках в этой документации:
http://search.cpan.org/dist/Net-SNMP/lib/Net/SNMP.pm
С другой стороны, пакет Net-SNMP выглядит очень надежной и хорошо используемой библиотекой, но даже там документация не дает мне четкого пути. SNMP :: TrapSession позволяет мне отправлять ловушки, но не получать их (?).
Некоторые поиски в Google приводят меня к выводу, что мне следует использовать двоичный файл snmptrapd и использовать его встроенные функции perl, чтобы вызывать мой скрипт, когда snmptrapd получает сообщение. Это может сработать, но будет непрактично, поскольку для встроенного параметра perl требуется двоичный файл perl, скомпилированный без поддержки больших файлов. Я не являюсь владельцем целевой системы и, следовательно, не могу заменить компилятор / интерпретатор. Я мог бы поставлять свое программное обеспечение со специально скомпилированным Perl, но это привело бы к кросс-платформенным проблемам, которых я надеялся избежать.
Причина, по которой я использую Perl, а не Java с SNMP4J или аналогичным, заключается в том, что у меня есть устаревший код perl, который ранее зависел от perl API HP NNM, и мне нужно перейти на серверную часть свободного программного обеспечения для устранения Стоимость лицензии.