2017-09-04 3 views
1

J'ai écrit un script de suivi pour voir des progrès du journal, mais je coincé avec ci-dessous le code,code procéder à une erreur dans l'utilisation de 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"; 
         } 

Ce code va venir avec en dessous de la production,

Impossible d'exécuter la commande

Cela indique qu'il ya une erreur, mais je tente de l'exécuter via ssh manuellement la commande fonctionne parfaitement.

Besoin d'assistance pour revoir ce code.

+0

Waht fait '$ ssh> error' dire? – Botje

Répondre

0

Si find ne trouve rien, capture renvoie la chaîne vide qui est une valeur false, de sorte que le die est appelé.

Vous pouvez vérifier si quelque chose a mal tourné appeler la méthode error:

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