gpt4 book ai didi

Perl 5.8 从 SSH 命令获取标准输出

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:38 25 4
gpt4 key购买 nike

我需要创建一个可在 CentOS 5.xCentOS 6.x 机器上运行的脚本。 CentOS 5.x 使用 Perl 5.8 而 CentOS 6.x 使用 Perl 5.10。目标是能够通过 ssh 进入一个有 key 交换的盒子,然后运行 ​​python -V,以确定默认版本是否为 python 2.6

我猜如果我得到一个适用于 Perl 5.8 的脚本,它也适用于 5.10。我在 Net::SSH:Any 方面取得了一些进展,不得不放弃它,因为它看起来适用于 Perl 5.12 和更新版本。

我也尝试过 IPC::System::Simpleqx,但未能成功捕获输出。

我的一些失败尝试:

失败 1:

use IPC::System::Simple qw(system systemx capture capturex);
my $output = capture("/usr/bin/ssh root\@10.100.10.56 python -V");
print "out: " . $output . "\n";

失败 2:

my $output = qx(ssh root\@10.100.10.56 python -V);
print "out: " . $output . "\n";

失败 3:

my @output = qx(ssh root\@10.100.10.56 python -V);
print "@output\n";

我不确定 ssh 的调用是否在玩任何东西,我迫切需要进行完整性检查。当命令运行时,输出显示在屏幕上,但不存储在变量中,我可以对其进行子字符串检查。 $output 变量留空。如果我遗漏了什么,请告诉我。谢谢:)

最佳答案

从 ThisSuitIsBlackNot 的建议中得出结论。我找到了 Getting STDOUT, STDERR, and response code from external *nix command in perl它向我展示了如何更新我的代码以获取 stderr,如下所示:

my $output = qx(ssh root\@10.100.10.56 python -V 2>&1);
print "out: " . $output . "\n";

这给了我我所需要的。谢谢!

关于Perl 5.8 从 SSH 命令获取标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com