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
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.
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
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 monlogin@192.168.0.30 /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:
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
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.
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...
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 } "moi@machine"