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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager