【问题标题】:Code proceed to error in using Net::OpenSSH代码在使用 Net::OpenSSH 时继续出错
【发布时间】:2017-09-04 04:07:46
【问题描述】:

我写了一个监控脚本来查看一些日志进度,但是我坚持使用下面的代码,

$fh = $ssh->capture("find $servers{$agent}{$log} -mmin +10") or die "Unable to run command\n";
                        chomp($fh);

                        if ($fh) {
                                print "Log are 10 minutes not moving. \n";
                        }
                        else {
                                print "Log are running as usual. \n";
                        }

这段代码会产生以下输出,

无法运行命令

这表明发生了错误,但是我尝试通过 ssh 手动运行它,该命令运行良好。

需要帮助来审核此代码。

【问题讨论】:

  • $ssh->error 说什么?

标签: perl api module system


【解决方案1】:

如果find 没有找到任何东西,capture 会返回一个错误值的空字符串,因此会调用die

您可以通过调用error 方法检查是否出现问题:

my $out = $ssh->capture("find $servers{$agent}{$log} -mmin +10");
$ssh->error and die "Unable to run command: " . $ssh->error;

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2018-02-09
    • 2014-05-18
    相关资源
    最近更新 更多