Bonjour,

Je souhaite utiliser net openssh afin de demander l'execution d'un ensemble de commandes sur une machine hôte, l'une de ces commandes fait appel à un script situé sur la machine hôte. Le problème c'est que le script à travers net open ssh n'a pas l'air d'utiliser la variable PATH de la machine hôte et donc renvoie comme erreur : command not found

solitek@solitek-VirtualBox:~$ ./scriptSSH.pl
bash: tsh: command not found

Le script en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;
use Net::OpenSSH;
use Net::SCP::Expect;
 
my $ssh = Net::OpenSSH->new(host=>'10.155.30.2', user=>'root', password=>'xxxxxxx');
 
my $cmd='tsh \'ps -ef\'' ;
 
$ssh->system($cmd);
J'ai essayé de bidouiller sur le paramètre ctl_path mais sans résultat. Le soucis c'est que je ne peux pas contourner le problème en modifiant le lien vers le script par son adresse complète /root/bin/tsh dans l'exemple car tsh fait lui même appel à un autre script dans son code et ce script en fait appel à un autre ....

Le lien vers Net::OpenSSH

http://search.cpan.org/~salva/Net-Op...Net/OpenSSH.pm

Cdt.