attendre + comment identifier si attendre pause, car le temps?
La cible de simples attendre script est d'obtenir le nom d'hôte nom sur la machine distante
Parfois attendre script ne parviennent pas à effectuer ssh $ADRESSE_IP ( parce que la machine distante n'est pas active , etc )
donc dans ce cas, le script expect va casser au bout de 10 secondes (délai d'attente de 10) , c'est OK mais......
Il y a deux options
- Script expect effectuer ssh avec succès , et a exécuté la commande hostname sur la machine distante
- Script expect pause, car délai d'attente est de 10 secondes
Sur les deux cas s'attendre à une sortie de
- en cas de ssh réussi à s'évader après 0,5 à 1 seconde, mais en cas de mauvais ssh puis il va se casser au bout de 10 secondes
mais je ne sais pas s'attendre à de script exécuter ssh avec succès ou pas?
est-il possible d'identifier les processus de délai d'attente ? ou pour vérifier que s'attendre à pris fin en raison de délai d'attente?
Remarque de ma machine Linux version - red-hat 5.1
Script expect
[TestLinux]# get_host_name_on_remote_machine=`cat << EOF
> set timeout 10
> spawn ssh $IP_ADDRESS
> expect {
> ")?" { send "yes\r" ; exp_continue }
>
> word: {send $PASS\r}
> }
> expect > {send "hostname\r"}
> expect > {send exit\r}
> expect eof
> EOF`
Exemple dans le cas où nous n'avons pas de connexion à l'hôte distant
[TestLinux]# expect -c "$get_host_name_on_remote_machine"
spawn ssh 10.17.180.23
[TestLinux]# echo $?
0
OriginalL'auteur | 2012-03-11
Vous devez vous connecter pour publier un commentaire.
De faire les choses sensibles sur le délai d'attente, vous devez dire à attendre de ce qui doit arriver:
Avis ci-dessus comment je
exit 1
quand j'ai frappé une erreur. Votre coque sera en mesure de choisir jusqu'par$?
, etc. (Sans le1
argument, laexit
commande provoque une interruption du script “avec succès”; la même chose se produit si vous déposez le bas du script.)OriginalL'auteur Donal Fellows
Pas vraiment répondre à la question d'origine, mais pourquoi parlez-vous de SSH de manière interactive lorsque vous ne pouvez passer à un script à exécuter? C'est une coquille, après tout.
Je veux dire, il suffit d'exécuter:
et ssh va lancer le
hostname
de commande à distance et de les raccorder sur la sortie standard vers la sortie standard du processus qui a donné naissance àssh
.Retour au point—cette ressemble un exemple sur la façon de lier une action à une condition de délai d'attente.
J'ai besoin d'entrer le mot de passe ( je ne peux pas définir les clés ssh ) , chaque machine ont des diff mot de passe de sorte que la cible de ce script expect est de ssh pour chaque machine linux et saisissez le mot de passe , de toute façon, merci , mais j'ai besoin de trouver une solution - comment vérifier le délai d'attente de script expect
Je vous ai fourni un lien vers un exemple de travail traitant de la condition de délai d'attente-quel est le problème?
Vous ne savez pas comment définir mon attendre en fonction de lien exemple , -:(
n'est-ce pas ceci un exemple complet de la façon de s'attendre à quelque chose qui peut de temps?
OriginalL'auteur kostix