2017-09-04 13 views
1

ich ein Überwachungsskript geschrieben einiges Protokoll Fortschritt zu sehen, jedoch steckte ich mit Code unten,Code Fehler geht in mit Net :: OpenSSH

$fh = $ssh->capture("find $servers{$agent}{$log} -mmin +10") or die "Unable to run command\n"; 
         chomp($fh); 

         if ($fh) { 
           print "Log are 10 minutes not moving. \n"; 
         } 
         else { 
           print "Log are running as usual. \n"; 
         } 

Dieser Code wird mit folgendem Ausgang kommt,

Unable Befehl

Dies wies darauf hin, dass es ein Fehler aufgetreten laufen, aber ich versuche es manuell über ssh der Befehl funktioniert perfekt auszuführen.

Benötigen Sie Unterstützung bei der Überprüfung dieses Codes?

+0

Waht tut 'ssh $> error' sagen? – Botje

Antwort

0

Wenn find nichts findet, gibt capture den leeren String zurück, der ein falscher Wert ist, so dass der die aufgerufen wird.

Sie überprüfen können, ob etwas schief ging die error Methode aufrufen:

my $out = $ssh->capture("find $servers{$agent}{$log} -mmin +10"); 
$ssh->error and die "Unable to run command: " . $ssh->error;