1
我正在使用PERL的NET::OpenSSH
模塊。我在簡單的腳本上試過了,它的工作完美。openSSH - 無法調用方法捕獲
現在我包括它在一個更大的腳本:
switch ($ARGV[2]) {
case "OBS" {
my $ssh = Net::OpenSSH->new("$user:$passwdobs\@$ARGV[1]");
if ($ssh->error) {
print ERR_REPORT_SSH "Echec ssh sur " . $ARGV[1] . " erreur a gerer plus tard\n";
die "Echec du ssh sur " . $ARGV[1] . "\n";
}
}
我有2人的情況與此類似,只有「案例‘OBS’,」正在發生變化,它的密碼。 變量$ ssh從來沒有未初始化。
而且在腳本中,我寫了這個:
open(SSHCONFIG, "/tech/gtr/scripts/osm/environnement_qualif/scan-rh2/bin/ssh.conf");
while (<SSHCONFIG>) {
@ligne = split(/;/, $_);
$listop = $ligne[0];
$listcmd = $ligne[1];
$fileprefix = $ligne[2];
if ($listop =~ /$operateur/) {
print "l'operateur match\n" . "commande : " . $listcmd . "\n";
#sendCommand($listcmd, $fileprefix);
my $out1 = $ssh->capture($listcmd);
print $out1 ;
}
else {
next;
}
}
雖然有一些在「ssh.conf」文件,腳本應該執行該文件中給出的命令。 但是,啓動時,腳本與此錯誤停止:
l'operateur match
commande : show arp
Can't call method "capture" on an undefined value at sshscript.pl line 65, <SSHCONFIG> line 1.
我的$ listcmd變量是不是空的,因爲你可以看到。 爲什麼不能調用捕獲方法? 謝謝。