|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2005 Messages : 5 ![]() |
Salut, alors voici mon problème :
Tout se passe entre deux machines : un RedHat 8.0 (machine A) et une autre machine de type UNIX (machine B, mais dont on ne connait pas grand chose d'autre). Seule certitude à propos de la machine B, elle accepte les R-commandes (rsh, rexec, rlogin) et les connexions telnet. Je cherche à lancer un grand nombre de commandes sur B depuis un script shell sur A en ouvrant une seule connexion. problème avec rsh : je ne peux lancer qu'une execution par connexion (inacceptable, car j'en ai des millers qui prennent chacune plusieurs secondes). Y a-t-il un moyen de lancer plusieurs executions sans refaire un rsh à chaque fois? problème avec rexec : idem que rsh, impossible de lancer plusieurs commandes problème avec rlogin : tout est correctement configuré sur B (fichiers .rhosts et hostequiv), en ouvrant une console sur A, la commande : rlogin machine_B fonctionne sans problème. Mais je ne parviens pas à utiliser la commande rlogin dans un script du type : rlogin machine_B << blabla cmd_1 cmd_2 ... cmd_n blabla la connexion est immédiatement coupée problème avec telnet : idem, la redirection en entrée pose problème, cela met directement un terme à la connexion. Voilà... si qq1 a une idée pour l'une des quatre pistes (peu importe laquelle, du moment que ça marche), je serais ravi. En farfouillant à droite à gauche, j'ai vu des propositions de piste du type TCL, expect, mais ce genre de solution serait vraiment un dernier recours. D'avance merci à ceux qui auront pris le temps de lire mon roman (lol, si vous êtes éditeurs...), bye Damien |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
est-ce que ssh est instalé sur la machine B?
si non, peux-tu l'installer? si oui, il est des plus simple avec ssh d'envoyer un ou plusieurs scripts sur B et de lui demander de les exécuter en tâches de fond via un utilitaire nommé "screen", je fais cela quotidiennement sur des serveurs distants de plusieurs centaines de kilomètres. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2005 Messages : 5 ![]() |
malheureusement non et non. pas de ssh envisageable.
notre liberté d'action sur B est quasi nulle. Il s'agit d'un module de pilotage pour un robot dont nous ignorons presque tout. Nous pouvons envisager une autre porte de sortie qui serait : transférer le script via FTP de A vers B, puis avec un rsh ou rexec le declencher sur B depuis A. Mais si une solution via les R-commandes ou telnet (et uniquement cela) est possible, elle est à privilégier. Damien (mci pour la proposition) |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
si tu peux faire cela, c'est gagner! le seul problème et de pouvoir "couper" la connexion après avoir lancer le script distant, mais pour cela, il faut soit screen ou une autre commande du genre "hangup" (j'ai oublié le nom exact) mais cela permet de passer la commande en tâche de fond et surtout de ce déconnecter sans que cela n'arrête la tâche en question.
et dans les scripts, tu y insères toutes les commandes à exécuter et si plusieurs commandes peuvent être exécutée en même temps, il suffit de mettre "&" en fin de la ligne de commande. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 68 ![]() |
J'ai déja eu ce genre de problème.
Le mieux est de copier ton fichier de connmande par rcp puis ensuite de lancer un rsh. Ps : tu peux lancer ensuite lancer ton rsh en tache de fond avec : nohup 'rsh ....' & |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : avril 2005 Messages : 5 ![]() |
oui... cela revient un peu au principe évoqué : transfert du script via FTP, puis rsh (avec c'est vrai, pas besoin de connexion FTP).
Problème : la machine B pourrait ne pas etre la meme d'une fois sur l'autre, donc pb pour determiner le chemin où copier, puis executer, et supprimer le script (+ eventuels problemes d'autorisation). (Le meme probleme se pose pour FTP d'ailleurs). J'ai reçu une réponse intéressante : rsh machine_B "cmd_1;cmd_2;...cmd_n" Cela permet de lancer plusieurs commandes avec un seul appel à rsh, mais dans mon cas (tordu de chez tordu...je vous l'accorde), cela fait envoyer une commande d'au moins 30000 caractères (certainement beaucoup plus)...lol, pas sur que ce soit terrible. On pourrait envisager de fractionner l'action...à voir... un truc du genre : rlogin machine_B << blabla cmd_1 cmd_2 ... cmd_n blabla serait parfait et permettrait de ne pas envoyer une commande enorme d'un seul coup... mais ça ne veut pas marcher... Bon... merci bcp pour votre aide. Je continue à chercher Damien |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2005 Messages : 5 ![]() |
rsh machine_B "cmd1;cmd2;...cmdn;"
Je viens de faire une ligne de plus de 70000 caractères... ça n'a pas bronché, j'ai récupéré la main en douceur après 3 ou 4 minutes. C'est nickel, merci à tous pour votre aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com