微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IPC :: Open3运行与独立snmwalk命令不同行为的snmpwalk

我已经做了一个自定义的子使用Open3在Perl中运行各种terminal命令。

我遇到了snmpwalk的一个奇怪的问题,当我在terminal运行命令它的工作,但与Open3它不会。

子是这样的:

sub run_cmd { my ( $cmd,@args ) = @_; my ( $infh,$outfh,$errfh,$pid,$out,$err ); use Symbol 'gensym'; $errfh = gensym(); # open3 does not init stderr,we have to do it. output( "run_cmd: $cmd @argsn",2,1 ); #for debug eval { $pid = open3( $infh,$cmd,@args ); } or do { if ($@) { output("Error: open3 error $@n"); exit $CODES{CRITICAL}; #exit 2; } }; { # anonym block to limit $/ redeFinition local $/ = undef; $out = <$outfh>; $err = <$errfh>; } return ( $out,$err ); }

我打电话给:

_LARGEFILE_SOURCE和_FILE_OFFSET_BITS = 64有什么区别?

为什么多次构buildLinux从零开始(LFS)?

任何人都知道任何静态types的脚本语言?

Glibc-2.22使(循环)错误

最好的linux发行版来做内核模块编程

($res,$err) = run_cmd("snmpwalk","-c public -v1","somehostname","NETAPP-MIB::aggrName");

如果我想运行以下命令:

snmpwalk -c public -v1 somehostname NETAPP-MIB :: aggrName

它返回为$ err:

snmpwalk:没有指定securityName

如果我在terminal运行完全一样的命令,它会返回我的结果:

NETAPP-MIB :: aggrName.1 = STRING:“SAS2”

NETAPP-MIB :: aggrName.2 = STRING:“SATA1”

我发现NET :: SNMP可以解决我的问题,但是我无法安装它,因为硬化的Linux操作系统没有安装选项。

我不明白为什么它不起作用。

perl -v:5.8.8

谢谢!

如何使用“make mrproper”命令? 我正在从头开始从事Linux

Gcc编译“无法计算目标文件的后缀:无法编译”

lfs glibc编译ld错误

使用make编译Glibc-2.11.1 for Linux时出错从零开始

chroot进入其他拱门的环境

问题是"-c public v1"参数:

($res,"NETAPP-MIB::aggrName");

IPC::Open3 open3()函数执行fork然后执行exec 。 当给定参数列表时, exec绕过shell。 所以这个列表需要分解成单个的参数:

($res,"-c","public","-v1","NETAPP-MIB::aggrName")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐