rechnen + wie zu erkennen, wenn Sie erwarten, zu brechen, denn die Zeit hin???
Ist das Ziel das folgende einfache Skript erwarten ist, um die hostname Namen auf dem remote-Rechner
Manchmal erwarten-Skript nicht ausführen ssh $IP_ADDRESS ( wegen remote-Rechner nicht aktiv , etc )
so, in diesem Fall die erwarten, Skript bricht nach 10 Sekunden (timeout 10) , dies ist aber OK......
Gibt es zwei Optionen
- Erwarten-Skript ausführen, ssh erfolgreich , und führten den Befehl hostname auf der remote-Maschine
- Erwarten Skript Pause wegen timeout wurde von 10 Sekunden
In beiden Fällen erwarten, dass die Ausfahrt
- im Falle von ssh erfolgreich erwarten bricht nach 0,5-1 Sekunde, aber im Falle von schlechtem ssh dann wird es brechen nach 10 Sekunden
aber ich weiß nicht, ob zu erwarten-Skript ausführen, ssh-erfolgreich oder nicht?
ist es möglich zu identifizieren, timeout-Prozess ? oder um zu überprüfen, die erwarten, endete wegen timeout?
Bemerkung meinem Linux-Rechner-version - rot-Hut 5.1
Erwarten Skript
[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`
Beispiel, im Falle dass wir keine Verbindung zu dem remote-host
[TestLinux]# expect -c "$get_host_name_on_remote_machine"
spawn ssh 10.17.180.23
[TestLinux]# echo $?
0
InformationsquelleAutor | 2012-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun sinnvolle Dinge für die Wartezeit, die Sie benötigen, zu sagen, erwarten, was passieren sollte:
Beachten Sie vor der Verwendung
exit 1
wenn ich einen Fehler. Ihre Schale wird in der Lage sein zu Holen, die sich durch$?
usw. (Ohne die1
argument, dieexit
- Kommando wird verursachen, dass das Skript abgebrochen wird "erfolgreich"; das gleiche passiert, wenn Sie drop-off das Ende des Skripts.)InformationsquelleAutor Donal Fellows
Wirklich nicht der Beantwortung der ursprünglichen Frage, aber warum redest du von SSH interaktiv, wenn man nur kann es passieren, ein Skript auszuführen? Es ist eine shell, nachdem alle.
Ich meine, nur laufen:
- und ssh-spawnen die
hostname
Befehl aus der Ferne und verbinden seine Standardausgabe auf den stdout des Prozesses, die hervorgebrachtssh
.Zurück zu dem Punkt—diese sieht aus wie ein Beispiel, wie das binden einer Aktion an eine timeout-Bedingung.
Ich muss das Passwort eingeben ( kann ich nicht ssh-keys ) , jede Maschine haben diff-Passwort, so das Ziel von diesem erwarten-Skript per ssh auf jedem linux-Computer und geben Sie das entsprechende Passwort , alle Weg, thx , aber ich brauche Lösungen zu finden, - wie Sie prüfen Auszeit vom Skript erwarten
Habe ich Ihnen einen link zu einem funktionierenden Beispiel der Umgang mit den timeout-Zustand-was ist das problem?
Nicht sicher, wie meine erwarten nach link Beispiel -:(
ist nicht dieser ein komplettes Beispiel, wie zu erwarten, etwas, das die Zeit aus?
InformationsquelleAutor kostix