如何在Perl中通过SSH获取在远程计算机上执行的命令的STDERR和STDOUT?

时间:2012-04-08 11:02:46

标签: perl expect

我必须通过Expect模块执行的SSH连接到远程机器。如果可能,我必须单独访问STDERR / STDOUT并查看输出。我可以重定向脚本的输出,例如

$command = "ssh <script> 2>/tmp/stderr.output"
$exp = Expect->spawn($command) or die "Cannot spawn\n";;
my @command1= $exp->expect(5);

然后我必须再次远程连接以检查stderr.output。 有没有一种方法可以单独返回STDERR / STDOUT

1 个答案:

答案 0 :(得分:3)

您可能需要考虑使用提供capture2方法的Net::OpenSSH

  

($output, $errput) = $ssh->capture2(\%opts, @cmd)

     

捕获远程计算机上stdout发送给stderr@cmd的输出。