📄 t061agentperl
字号:
#!/bin/sh. ../eval_tools.shHEADER 'snmpd embedded perl support (using NetSNMP::agent)'SKIPIF DISABLE_SNMPV2CSKIPIFNOT NETSNMP_EMBEDDED_PERL## Begin test#snmp_version=v2cTESTCOMMUNITY=testcommunity. ./Sv2cconfigTESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0EMBPERL_AGENT=${SNMP_TMPDIR}/hello.plcat >$EMBPERL_AGENT <<END#!/usr/bin/env perl# minimal embedded perl agentmy \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPenmy \$myoid = \$regat . ".1.0"; # the "hello world" OIDmy \$myoid2 = \$regat . ".2.0"; # the "hello again world" OIDuse NetSNMP::OID qw(:all);use NetSNMP::agent qw(:all);use NetSNMP::ASN qw(:all);use SNMP;my \$regoid = new NetSNMP::OID(\$regat);\$agent->register("hello", \$regoid, \&my_snmp_handler);sub my_snmp_handler { my (\$handler, \$registration_info, \$request_info, \$requests) = @_; for(my \$request = \$requests; \$request; \$request = \$request->next()) { if (\$request_info->getMode() == MODE_GET) { if (\$request->getOID() == new NetSNMP::OID(\$myoid)) { \$request->setValue(ASN_OCTET_STR, "hello world"); last; } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) { \$request->setValue(ASN_OCTET_STR, "hello again world"); last; } } }}ENDecho "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl.plecho 'use NetSNMP::agent;' >> ${SNMP_TMPDIR}/snmp_perl.plecho '$agent = new NetSNMP::agent('"'dont_init_agent' => 1, 'dont_init_lib' => 1);" >> ${SNMP_TMPDIR}/snmp_perl.plCONFIGAGENT perlInitFile ${SNMP_TMPDIR}/snmp_perl.plCONFIGAGENT "perl do '$EMBPERL_AGENT';"CONFIGAGENT 'perl print STDERR "registered_perl_agent_ok";'# make sure that NetSNMP::agent's agent.so can load (uninstalled) libnetsnmp*.so_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"if [ "x$LD_LIBRARY_PATH" != "x" ]; then LD_LIBRARY_PATH="${_ld_lib_path}:${LD_LIBRARY_PATH}"else LD_LIBRARY_PATH="${_ld_lib_path}"fi if [ "x$DYLD_LIBRARY_PATH" != "x" ]; then DYLD_LIBRARY_PATH="${_ld_lib_path}:${DYLD_LIBRARY_PATH}"else DYLD_LIBRARY_PATH="${_ld_lib_path}"fi if [ "x$SHLIB_PATH" != "x" ]; then SHLIB_PATH="${_ld_lib_path}:${SHLIB_PATH}"else SHLIB_PATH="${_ld_lib_path}"fi export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATHSTARTAGENT## 1) SNMP GET against embedded perl mib moduleCAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID"CHECK "hello world"## 2) persistency: reconfigure (HUP), re-testHUPAGENTCAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2"CHECK "hello again world"## stopSTOPAGENTFINISHED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -