我有一个 perl 脚本启动一个 EC2 实例,然后使用 Net::OpenSSH 连接并运行一些命令。
my $ssh = Net::OpenSSH->new( $username . "\@" . $host,
key_path => $key_path,
master_opts => [-o => "ConnectionAttempts=30", -o => "ConnectTimeout=30"] );
if ( $ssh->error ) {
die "Timeout: " . $ssh->error . "\n";
}
这似乎不起作用 - 这应该尝试 15 分钟,然后退出,但它几乎立即返回。我从来没有收到 Timeout: 错误消息,所以 ssh 没有返回错误。
这是正确的语法吗?有没有更好的方法来处理 EC2 实例可能需要几分钟才能可用的事实?