Cher journal, j'ai un problème qui me prend la tête depuis un bon gros bout de temps : je souhaite lancer une application par telnet (en attendant que l'admin de cette babasse installe ssh, ce qui risque pas d'être fait avant longtemps :-().
Je fais :
(sleep 5; echo "mon_login"; sleep 5; echo "mon_pass" ; sleep 2 ; touch test) | telnet babasse_distante
il me met la la demande du login, le login se remplit, il demande le mot de passe qui se remplit tout seul aussi puis il m'affiche le message d'accueil de la babasse ("Pendant la nuit les fichiers ".ps" et ".bak" sont supprimes dans vos repertoires... blabla".... puis
"mon_login@babasse_distante:mon_login$ Connection closed by foreign host."
Et le problème, c'est que le fichier "test" est créé sur la machine LOCALE au lieu d'être créé là-bas !!!
Quelqu'un a une idée ?
# Re: Faire un script lançant un programme sur une machine distante
Posté par rootix . Évalué à 2.
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par Uvoguine . Évalué à 1.
# Re: Faire un script lançant un programme sur une machine distante
Posté par Victor . Évalué à 2.
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par Samaty Tramo . Évalué à 1.
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par Uvoguine . Évalué à 1.
Ça crée plus de fichier local, mais ça crée pas non plus de fichier distant .
Merci quand même
# Re: Faire un script lançant un programme sur une machine distante
Posté par mnemosyne . Évalué à 2.
Si tu peux utiliser telnet il y a de bonnes chances que rsh marche aussi. L'avantage de ce dernier (outre le fait qu'il a précisément été conçu pour ce que tu as l'intention de faire) est que tu peux spécifier dans un fichier (.rhosts) les utilisateurs autorisés à se connecter sans fournir de mot de passe. Accessoirement cela t'évitera de balancer le tien -- de mot de passe -- en clair sur le réseau.
Bref, dans ton cas, tu crées un script, touch_test.sh par exemple, qui contient les commandes que tu veux exécuter à distance (touch test, en l'occurence) et tu lances ensuite : rsh <machine_distante> touch_test.sh
Bon, maintenant si tu te prends tellement la tête à essayer de faire une session telnet non-interactive, c'est peut-être que rsh n'est vraiment pas disponible...
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par Uvoguine . Évalué à 1.
Sinon, concernant le .rhost c'est pas trop envisageable, tu vas vite voir pourquoi :
en fait je fais un dérivé de Knoppix pour les élèves de mon école et l'une des fonctionalités que j'ai prévu d'implémenter est de pouvoir lancer Matlab voire Catia sur les machines de l'école, à partir des résidences. Afin de simplifier les choses, je ne peux pas demander à chacun de bidouiller leur .rhost.
Et le problème, c'est que je n'ai pas trouvé comment passer le mot de passe en paramètre à rlogin ou rsh, sinon, un "rsh -l mon_login --pass mon_mdp babasse scrpt.sh" me plairait bien.
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par mnemosyne . Évalué à 2.
(echo "login"; sleep 2; echo "pass"; echo "ls /tmp"; echo "exit") | nc -t machine 23
fournit le résultat attendu.
[^] # Re: Faire un script lançant un programme sur une machine distante
Posté par Uvoguine . Évalué à 1.
Ceci dit, je comprends toujours pas pourquoi avec telnet ça marchait pas :-(
# Re: Faire un script lançant un programme sur une machine distante
Posté par roland pistolero . Évalué à 3.
use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10, Prompt => '/bash\$ $/');
$t->open("babasse_distante");
$t->login($username, $passwd);
@lines = $t->cmd("touch test");
print @lines;
/bash\$ est le pompt affiché par babasse_distante.
# Merci à tous
Posté par Uvoguine . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.