Bonjour à tous,
Après avoir cherché de longues heures une solution à mon problème, je me tourne vers la communauté.

Mon problème est le suivant :
je dois développer un script en Perl pour automatiser certaines taches sur différents postes.
- Le script est situé sur une machine A
- Il se connecte avec Net::Telnet sur une machine B pour effectuer des actions
- Il faut que depuis la machine B, le script se connecte sur une machine C non visible depuis A pour faire un traitement supplémentaire.

En gros, cela correspond à faire A -> B -> C, car je ne peux pas faire A->B, puis A->C.

ou depuis A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
telnet machineB
login
pass
actions_a_executer_sur_machineB
rlogin -l machineC
pass
actions_a_executer_sur_machineC
Le problème de la commande "rlogin" avec le module Net::Telnet est qu'une invite de commande apparaît pour me demander le mot de passe. Je n'arrive pas à détecter l’évènement pour le fournir. Je claque sur le timeout du telnet.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
login@machineB:/home/login>rlogin machineC
Password:


J'ai tenté d'utiliser la commande $telnet->waitfor('/Password : /i'); sans succès.

Sachant que les actions de la machine C sont complexes et font intervenir des appli graphiques, je ne peux pas utiliser un "rsh" depuis B (en tout cas, à ma connaissance).

J'espère avoir été clair sur mon problème et qu'un âme charitable aura l'éclair de génie qui me manque

Merci d'avance.
Gnarkk