我在perl脚本中运行以下代码行来查找远程机器的df输出。这工作正常,并在@df_ret中收集信息直到ssh键为uptodate。如果公共损坏或更改,它在脚本中没有显示任何错误迹象。如果我手动运行,我将被要求输入密码。
@df_ret = split /\n/, `ssh -q $server 'df -hP'`;
有什么方法可以验证如果ssh登录成功,那么这个perl脚本行应该执行,否则不行。一直在寻找很多搜索,但无法到达ONE。有什么帮助吗?
答案 0 :(得分:1)
我有一个解决方案如下工作; #!的/ usr / local / bin中/ perl的
my $line = `ssh $server -o 'BatchMode=yes' -o 'ConnectionAttempts=1' true`;
my $error = `echo $?`;
print "Error = $error";
if($error == 0 )
{
print "This is good";
@df_ret = split /\n/, `ssh -q $server 'df -hP'`;
}
else
{
print "This is bad";
}
答案 1 :(得分:0)
在分割之前检查ssh
exec的结果:
$text = `ssh -q $server 'df -hP'` or die "unable to ssh\n";
@df_ret = split /\n/, $text;