我在perl腳本中運行以下代碼行以查找遠程計算機的df輸出。這工作正常,收集信息在@df_ret直到ssh密鑰是最新的。如果公衆被損壞或更改,它不會在腳本中顯示任何錯誤跡象。如果我手動運行,那麼我會被要求輸入密碼。在perl中登錄驗證
@df_ret = split /\n/, `ssh -q $server 'df -hP'`;
有沒有什麼辦法可以驗證,如果ssh登錄成功,那麼這個Perl腳本行應該執行其他的不行。找到了很多搜索,但無法找到ONE。任何幫助?
我在perl腳本中運行以下代碼行以查找遠程計算機的df輸出。這工作正常,收集信息在@df_ret直到ssh密鑰是最新的。如果公衆被損壞或更改,它不會在腳本中顯示任何錯誤跡象。如果我手動運行,那麼我會被要求輸入密碼。在perl中登錄驗證
@df_ret = split /\n/, `ssh -q $server 'df -hP'`;
有沒有什麼辦法可以驗證,如果ssh登錄成功,那麼這個Perl腳本行應該執行其他的不行。找到了很多搜索,但無法找到ONE。任何幫助?
我有一個解決方案如下工作; ! #在/ 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";
}
檢查ssh
EXEC的分裂之前的結果:
$text = `ssh -q $server 'df -hP'` or die "unable to ssh\n";
@df_ret = split /\n/, $text;
這裏是第一線的輸出.../1.pl 密碼: 密碼: 密碼: ./1.pl:行1:=::找不到命令 – 2013-05-02 14:13:51
我有類似「ssh服務器-o'BatchMode = yes'-o'ConnectionAttempts = 1'true」這似乎一直工作,直到模仿延長...尋找好的解決方案 – 2013-05-02 14:14:58
修復: '我的$錯誤= $? >> 8;'因爲'$?'是Perl的內部變量(與Unix shell的'$?'有相同的名稱)。 – dolmen 2013-05-02 15:41:46