请问SSH选择哪个模块好点?

我一般都用个 笨办法

看cpan 的推荐度  不知道选择哪个好的话
就用推荐星星多的那个
我一般选择调系统命令ssh,
我今天试了
use Net::SSH::Perl;
use Net::SSH::Expect;
两个模块,发现一些问题:

Net::SSH:Expect获取远程命令输出时,返回的值是一个标量变量(或者说是一个只有一行的数组),不像Net::Telnet一样,每一行输出组成一个数组。
并且Net::SSH::Expect在获取命令输出时,有些时候会把前面两个命令的输出一起返回给第三个变量。
因此我放弃了Net::SSH::Expect。

Net::SSH::Perl,虽然返回的是一个数组,但是这个数组只有三行,最后两行是多余的,最前面的一行,就是命令返回的结果。
这样的结果就是,比如你cat /etc/hosts,有10行,但是你print时,它把这10行都显示在1行上。

也许我前面用Net::Telnet,用得比较顺手,现在我要专门用子程序,将只有一行的数组,转换成多行的数组,就是说,将这1行的/etc/hosts返回值,重新还原成有10行的数组,然后再print出来看。

sub clear_ssh_prompt {
        #print "input is \n @main::my_result \n";
        pop (@main::my_result);
        pop (@main::my_result);
        #print "output is \n @main::my_result \n";
} #end of clear_prompt

sub format_ssh_output {
        ($main::my_result) = pop @main::my_result;
        @main::my_result = split /\n/,$main::my_result;
        foreach (@main::my_result) {
                s /$/\n/;
        }
}

但是可惜Net::SSH:Perl在我的solaris10 x86上用不了,因为装Math-GMP-2.05时,它老是说:
root@solaris01 # cd Math-GMP-2.05
root@solaris01 # perl Makefile.PL
Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -lgmp
Writing Makefile for Math::GMP

==========================================================

WARNING! No GMP libraries were detected!

Please see the INSTALL file.

===========================================================

但是在Linux就一切正常,所以我只能在Linux上继续写我的脚本。

以后搞定GMP的库问题之后,再回到Solaris平台。



QUOTE:
原帖由 jjqing 于 2008-10-23 19:08 发表
“无大量回显输出”:
如果最大的输出是5000行,但是只有一个这样的输出,这算不算是大量回显输出呢?

我是把这个输出保存到一个数组,然后在本地进行处理的。

这样的量是没有问题的,
如果有可能的话可以配合使用memcache,非常棒的东东

用这个模块还可以实现cmd拦截等功能,功能类似http://www.shterm.com/