OVH Cloud OVH Cloud

Problème de script

4 réponses
Avatar
nif
Bonsoir,

Je voudrais créér un script qui permet de me loguer en telnet sur un
autre pc afin d'y lancer une commande
Voilà mon (petit) script :

#!/bin/sh
telnet 192.168.0.30
echo monlogin
echo monPassword
cd var/script
./ma-commande.sh

Mais voilà j'arrive bien à aller sur le pc distant en telnet
mais pas moyen de se loguer automatiquement, j'ai systématiquement le
prompt login:

Si quelqu'un à une idée !!!

Grand Merci d'avance

ps: oui je sais, je suis nul en programmation,
Désolé

--
Enlevez nospam pour me repondre
Visitez http://nif.free.fr

4 réponses

Avatar
nif
Le Fri, 09 Dec 2005 18:57:03 +0100, nif a écrit :

Bonsoir,

Je voudrais créér un script qui permet de me loguer en telnet sur un
autre pc afin d'y lancer une commande
Voilà mon (petit) script :

#!/bin/sh
telnet 192.168.0.30
echo monlogin
echo monPassword
cd var/script
./ma-commande.sh

Mais voilà j'arrive bien à aller sur le pc distant en telnet
mais pas moyen de se loguer automatiquement, j'ai systématiquement le
prompt login:

Si quelqu'un à une idée !!!

Grand Merci d'avance

ps: oui je sais, je suis nul en programmation,
Désolé


J'ai aussi essayé avec :
telnet -l monlogin -d monPassword 192.168.0.30
mais -d n'est pas reconnu !

--
Enlevez nospam pour me repondre
Visitez http://nif.free.fr

Avatar
Une bévue
nif wrote:

telnet -l monlogin -d monPassword 192.168.0.30

d'après man -d = debug ...

--
Une bévue

Avatar
cwpbl
Bonsoir,

Je voudrais créér un script qui permet de me loguer en telnet sur un
autre pc afin d'y lancer une commande
Voilà mon (petit) script :

#!/bin/sh
telnet 192.168.0.30
echo monlogin
echo monPassword
cd var/script
./ma-commande.sh

Dans ton shell, si je comprends bien, tu lance un telnet et les echo qui

suivent sont censés "répondre" au questions de telnet.
ça ne marchera pas pour 2 raisons :
1. telnet "bloque" : Tant que la commande telnet n'a pas abouti, on ne
passe pas aux echo. A la rigueur, le truc suivant serait + logique :
echo -e "monloginnmonPasswordn" | telnet 192.168.0.30

2. ...mais ça ne marche pas non plus car de toute façon, on ne peut pas
passer d'infos à des commandes interactives style telnet via l'entrée
standard.


En fait les commandes qu'il te faut sont :
rsh ou ssh

Exemple avec rsh

rsh -l monlogin 192.168.0.30 /var/script/ma-commande.sh

Cette commande *ne demandera pas* le mot de passe si le host de départ
est déclaré avec le nom du user de départ dans un fichier appelé .rhost
(avec droitsd4) qui se trouve dans le home directory de "monlogin"
(cf man rsh)

Pour ssh qui crypte les comm. entre serveur et client, c'est plus
complexe, il faut générer des clés privées et publiques...(man ssh, sshd
). Là ça donnerait :
ssh /var/script/ma-commande.sh

Mais voilà j'arrive bien à aller sur le pc distant en telnet
mais pas moyen de se loguer automatiquement, j'ai systématiquement le
prompt login:

C'est normal, telnet est fait pour ça.


Avatar
JustMe
nif avait soumis l'idée :
Bonsoir,

Je voudrais créér un script qui permet de me loguer en telnet sur un
autre pc afin d'y lancer une commande
Voilà mon (petit) script :

#!/bin/sh
telnet 192.168.0.30
echo monlogin
echo monPassword
cd var/script
./ma-commande.sh

Mais voilà j'arrive bien à aller sur le pc distant en telnet
mais pas moyen de se loguer automatiquement, j'ai systématiquement le
prompt login:

Si quelqu'un à une idée !!!

Grand Merci d'avance

ps: oui je sais, je suis nul en programmation,
Désolé


Regarde du cote de la commande "expect" : elle est faite pour ca...

#!/bin/expect

spawn telnet mamachine

set timeout 120

expect eof exit timeout { send_user "Timed out waiting for login
promptn"; exit } "login:"
send "moir"

expect eof exit timeout { send_user "Timed out waiting for password
promptn"; exit } "Password:
send "secretr"

expect eof exit timeout { send_user "Timed out waiting for shell
promptn"; exit } ""

send "ma commander"

etc...