Script Linux bash connexion Telnet

Fermé
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 - 28 juil. 2004 à 09:42
 MacThoFer - 29 déc. 2004 à 09:45
Salut tout le monde ;-)

Je cherche à faire un script bash qui se connecte avec telnet exécute une commande sur le serveur distant et récupere le fichier créé (ca a la llimite je peux rouvrir une connexion ftp derriere pour récupérer le fichier). Et en plus les renseignement sont passés en parametre du programme :
prog_recup_arbo.sh <serveurdist> <login> <passwd> <deb_arbo_a_recup>


J'ai ca mais ca ne marche pas ( il me semble qu'il me manque des options pour se connecter sans demander authentification directement à la connexion au serveur. C'est ce que je fais avec ma connexion ftp un peu plus bas ) :

     #!/bin/bash

     telnet << END
     open $1
     $2
     $3
     cd $4
     find . -type d -exec echo {} \;  > arbo.txt
     exit
     END

     # Et a la limit une connexion ftp pour recup le fichier 
     # créé : si y'a plus simple je veux bien
     ftp -v -i -n << FIN
     open $1
     user $2 $3
     cd $4
     mget arbo.txt
     exit
     FIN

     # Fin du programme de récuperation de l'arborescence à 
     # partir d'un serveur distant !!


Une aide serait la bienvenue. Merci d'avance.

Cordialement. Melle Elise78
A voir également:

13 réponses

Astuce pour executer une commande sur un serveur distant,
lorsque que l'on a acces par un telnet mais que l'on ne
veut pas mettre les services (rlogin,rsh,rexec) en place
sur ce serveur distant.

1) Faire un script contenant les operations que l'on ferait manuellement
par un telnet. (Exemple script "action.scr" suivant)
#!/bin/sh
sleep 2
echo "user de connexion"
sleep 1
echo "mot de passe"
sleep 1
echo "commande 1"
sleep 1
echo "commande n"
sleep 1
echo "exit"

Remarque(1):Le "sleep 1" est important sur les plateformes linux
Sinon le script est trop rapide est le telnet ne voit
pas passer les instructions !
Augmenter la valeur du sleep suivant la commande si celle-ci
a un delai de reponse long.
Remarque(2):Ne pas oublier de mettre les droits d'execution sur
le script (chmod 777 action.scr)

2)Ensuite lancer le script redirige vers le telnet
Exemple:
#sh action.scr|telnet adresseIP

Resultat:Connexion telnet, avec application des commandes 'echo "cmde"'
du script "action.scr" ("comme de facon manuelle").
8
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 09:56
Salut,

Essaie avec la commande rexec.
Par contre, le FTP, tu n'y couperas pas !

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 10:03
[grofwa] Essaie avec la commande rexec. [/grofwa]
Heu oui, mais a la place de quoi ?

le probleme que j'ai pour le moment c'est qu eje n'arrive pas à m'authentifier correctement. J'arrive à accéder au serveur, mais il me met directement apres que le serveur distant à mis fin à la connexion (il ne fait meme pas le reste). Sinon la comme find marche tres bien, j'ai deja tout essaye a la main et tout marche nikel. Le truc c'est que je suis hyper feniante et que du coup je prefere automatiser le plus de trucs possible surtout quand je me le tape plusieurs fois :-p
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 10:23
Y a pas de mal à être fainéant, ça peut même être une qualité ;-)

Je proposais de faire le rexec à la place de ton telnet :
rexec [username@hostname] [-DNn] [-l username] [-p password] command

et dans command, tu mets
"cd $4; find . -type d -exec echo {} \;  > arbo.txt"


Ca devrait fonctionner

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 10:27
Ah ok !! :-)

Je vais essayer de ce pas.

Cordialement, Melle Elise78.
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 11:33
Re :-)

Bon alors j'ai essayé dans tous les sens - au cas ou j'aurai fait une erreur - j'ai vérifié ce que j'ai tapé plusieurs fois et j'ai lu le man en long et en large - mais la je ne suis pas une fleche en anglais alors un petit bémol :-p

Y'a rien a faire il ne veut pas comprendre que j'ai besoisn de faire cette manip.

Alors j'ai ce code :

       echo " test "

       rexec root@servdist -l login -p passwd "find . -type d > arbo.txt"
       echo " fin test "


Mais il me redemande le mot de passe et me répond ceci :
       Password : 
       rexec :  Error in rexec system call
       rexec :  (The following system error may itself be in error)
       rexec :  Success


Et la je suis completement à la masse. je ne vois pas l'erreur. Si y'a une idée du problème ...

Cordialement, Melle Elise78.
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 15:30
woow...

t'arrives a faire la connexion telnet manuellement ?


Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 16:04
Oui sans aucun soucis.

[root]# telnet
telnet> open servdist
blablabla...
login : root
password : pass
servdist:/# ls -la 
servdist:/# exit
[root]# 

Je ne comprends plus rien je vais devenir folle :-~
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 16:10
Strange...
Je suis pas au boulot et je ne peux pas tester.
Tu as essayé de retirer l'espace entre telnet << et END ?


Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 16:18
oui, j'ai tout essayé !
sous toutes les formes
du style :
...
user $login $passwd
...
$login
$passwd
...
$login $passwd
...
au cas ou il ne le lirait differemment du ftp
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 16:34
Je sais bien que j'avais essayé de faire du telnet comme ça et j'avais fini par me rabattre sur le rexec. Mais je pense qu'il y a des limitations et des versions différentes de rexec selon les OS... notamment pour le fait de passer le password en paramètre.

Honnêtement, je ne vois pas trop que faire de plus...

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Elise78 Messages postés 77 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 16 novembre 2006 3
28 juil. 2004 à 16:38
Bein, bien merci de m'avoir aidée, je crois que je vais abandonner et dieu sait (s'il existe bien entendu lol) que c'est dur pour moi.
Je veux trouver la solution ! Mais étant donné qu'il ne faut pas etre trop borné dans la vie, alors je mets tout ca de coté 'pour le moment'.

Encore merci. Si un jour tu trouves, fais moi signe ;-)
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juil. 2004 à 16:54
J'ai encore regardé sur le net, mais je n'ai pas trouvé de solution à ton problème de rexec.

Sorry !

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0