problèmes avec attendent -send: spawn id exp4 pas ouvert
Question
Mon code fait attendre ceci: Il fait un ssh se connecter à une autre machine, envoie le mot de passe, puis retourne le nom d'hôte de cette machine. Je donne un échantillon de mon code ci-dessous
#! / Usr / bin / expect -f
mettre ipaddr [lrange $ argv 0 0]
Définir mot de passe [lrange $ argv 1 1]
délai fixé -1
ssh root @ spawn nom d'hôte ipaddr de $
match_max 100000
attendre "* assword: *"
envoyer - "mot de passe $ \ r"
attendre eof
Ce code fonctionne parfaitement plusieurs fois, mais par intermittence, je reçois l'erreur suivante
envoyer: spawn id exp4 pas ouvert
lors de l'exécution
"Envoyer - "mot de passe $ \ r""
Pourquoi cela arrive-t-il?
La solution
Figured pourquoi. J'avais généré des clés ssh et copié sur la machine de destination. Il n'y avait donc pas de « Mot de passe: » invite. Par conséquent avant l'envoi pourrait terminer, la connexion ssh avait fermé.
J'ai supprimé les clés SSH de la machine de destination et a couru le script à nouveau et observé aucun problème