Problème Exécution commande système ds perl
Bonjour,
Je me confronte à une difficulté récurrente. Lorsque j’exécute une commande système directement en shell pas de souci.
Dans mon script perl, je souhaite directement exécuter cette même commande avec une connexion ssh et là impossible.
Voici un extrait de mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#-------------- 2 : Connexion au serveur
my $ssh2 = Net::SSH2->new();
$ssh2->connect($server) or die "ERREUR_CONNEXION :\tsur serveur $server\t$!";
#-------------- 3 : Authentification par clé RSA
$ssh2 -> auth_publickey ( $auth[0], $auth[1], $auth[2] ) or die "ERR_LOGIN :\tproblème auth RSA\t";
my $chan2 = $ssh2->channel();
#$chan2->exec('find /var/log/* -type f -size +90M -exec ls -Sl {} \;'); #fonctionnel Dans ce cas mais j'ai besoin de la commande si dessous.
#COMMANDE DONT J AI BESOIN QUI NE FONCTIONNE PAS
$chan2->exec("find /var/log/* -type f -size +90M -exec ls -Sl {} \; | awk '{print $5 " " $9 }'");
my @tab;
unshift(@tab,$_) while <$chan2>;# je récupère le
reslutat de la commande que j'envoie dans un tableau
print @tab;#J'affiche mon tableau
$chan2->close;# FERMETURE TUNNEL CHAN2
$ssh2->disconnect();#Fermeture connexion ssh |
Je vous remercie pour vos conseils