Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2005, 15h34   #1
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 2
Points : 2
Par défaut Plusieurs commandes avec 1 seule R-commande

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
pouldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 15h41   #2
Membre éclairé
 
Inscription : décembre 2004
Messages : 379
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 379
Points : 304
Points : 304
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.
jean-jacques varvenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 15h55   #3
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 2
Points : 2
Par défaut pas de ssh

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)
pouldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 16h01   #4
Membre éclairé
 
Inscription : décembre 2004
Messages : 379
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 379
Points : 304
Points : 304
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.
jean-jacques varvenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 17h38   #5
Membre du Club
 
Inscription : février 2005
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 68
Points : 45
Points : 45
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 ....' &
mollux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 17h55   #6
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 2
Points : 2
Par défaut ça avance...

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
pouldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2005, 18h44   #7
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 2
Points : 2
Par défaut [résolu]

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
pouldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h41.


 
 
 
 
Partenaires

Hébergement Web