如何修复Net :: SSH :: Expect" SSHAuthenticationError登录超时"使用Parallel :: Forkmanager时出现问题?

时间:2014-06-06 03:18:42

标签: perl ssh parallel-processing

当我使用Parallel :: Forkmanager完成远程ssh的并行处理时,我遇到了#34; SSHAuthenticationError登录超时"如果远程设备无法访问,则会出现问题,然后STDOUT完全混乱。 那么我该如何解决这个混乱的STDOUT问题呢? 为什么我们可以使用eval {ssh operation}来解决? 感谢。

1 个答案:

答案 0 :(得分:3)

您可以尝试Net::OpenSSH,它甚至可以让您在所有主机中并行运行操作而不会有太多麻烦。

您还可以尝试增加timeout

另一种可能的解决方案可能是下面的

my $retry_count = 0;
  while(1){
    $rc = eval{$ssh->login();};
    last if defined $rc;
    last if $retry_count >= $max_retry_count;
    $retry_count++;
    sleep 1;
  }

另见:Net::SSH::Perl, Net::SSH::Expect crashes script if host is unreachable