PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgabe Problem bei expect



netlinker
20-01-2005, 17:45
Hallo ich habe mal ein Problem mit der Ausgabe meines Expect-Scriptes und zwar hackelt die Ausgabe auf der Console,
oder die Ausgabe ist nicht in der Reihenfolge, in der die Kommandos abgesetzt werden.

In meinem Fall sehe ich in der Console zuerst mein zweiten spawn vor der Ausgabe "Sub-Telnet auf die CPE wird nun gestartet".
Die Kommandos werden aber in der richtigen Reihenfolge abgearbeitet, nur die Ausgabe ist verkehrt.

Ich sehe in dem Script häufiger, dass die Ausgabe hackelt.
Ich sehe z.B nur eine halbe der Rückgabe

Router1#! Shutdown des Controller
und einige Sekunden später habe ich dan die ganze Zeile
Router1#! Shutdown des Controller und Anfragen folgen nun!

Ich habe leider keine Ahnung, woran dieses Verhalten liegt. Nur leider kann ich im Moment nicht erkennen an welchem Punkt des Scriptes ich mich gerade befinden.

Wäre super wenn ihr ne Idee hättet.
bye und schon mal thx Björn




Hier mal ein Auszug aus meinem Script
################################################## ########
#!/usr/bin/expect --
spawn telnet $zugangsip $zugangsport
set main_telnet $spawn_id
...

expect {
-i $main_telnet "#" { send -i $main_telnet "terminal length 0\r\r"
send -i $main_telnet "! Login auf der Console der CPE erfolgreich\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!\r\r" } }
# VTy auf der CPE clearen
expect {
-i $main_telnet "#" { send -i $main_telnet "! Durchgang $counter startet\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!\r! VTY-Lines werden Resetet\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!\r"
send -i $main_telnet "clear line vty 0\r\r\r" } }
expect {
-i $main_telnet "#" { send -i $main_telnet "clear line vty 1\r\r\r" } }
expect {
-i $main_telnet "#" { send -i $main_telnet "clear line vty 2\r\r\r" } }
expect {
-i $main_telnet "#" { send -i $main_telnet "clear line vty 3\r\r\r" } }
expect {
-i $main_telnet "*" { send -i $main_telnet "! Sub-Telnet auf die CPE wird nun gestartet\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!\r" } }
expect {
-i $main_telnet "#" { send -i $main_telnet "! \r\r" } }
# An der Stelle hatte ich auch schon ein sleep 20 oder kein sleep, mach keinen Unterschied
sleep 10

# Einlogen eines zweiten Telnets
spawn telnet $subtelnet_ip $subtelnet_port
set sub_telnet $spawn_id
expect {
-i $sub_telnet "*" { send -i $sub_telnet "\r\r" } }
expect {
-i $sub_telnet "*sername:*" { send -i $sub_telnet "$ts_user\r" } }
expect {
-i $sub_telnet "*assword:*" { send -i $sub_telnet "$ts_pass\r\r" } }
expect {
-i $sub_telnet "#" { send -i $sub_telnet "! Telnet ist eingeloggt\r\r" } }
expect {
-i $sub_telnet "#" }

# Wieder im Main Telnet
expect {
-i $main_telnet "#" { send -i $main_telnet "! Shutdown des Controller und Anfragen folgen nun!\r! Durchgang $counter startet\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!\r" } }
sleep 5



Und hier ein Auszug von dem was ich in der Console sehe
################################################## ########
Router1#terminal length 0
Router1#
Router1#! Login auf der Console der CPE erfolgreich
Router1#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!
Router1#spawn telnet 192.168.0.42 23 <========= Das sollte erst weiter unten zu sehen sein


Trying 192.168.0.42...
Connected to 192.168.0.42.
Escape character is '^]'.


at '192.168.0.42' port 'tty66' from '192.168.5.2'

Username:

at '192.168.0.42' port 'tty66' from '192.168.5.2'

Username:

at '192.168.0.42' port 'tty66' from '192.168.5.2'

Username: saver
Password:

Router1#
Router1#
Router1#! Durchgang 1 startet
Router1#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!
Router1#! VTY-Lines werden Resetet
Router1#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!
Router1#clear line vty 0
[confirm]
[OK]
Router1#
Router1#clear line vty 1
[confirm]
[OK]
Router1#
Router1#clear line vty 2
[confirm]
[OK]
Router1#
Router1#clear line vty 3
[confirm]
[OK]
Router1#
Router1#! Sub-Telnet auf die CPE wird nun gestartet
Router1#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!! <==== Bis hierhin sollte alle Vor dem spawn telnet 192.168.0.42 23 zu sehen sein
Router1#!
Router1#
Router1#! Shutdown des Controller und Anfragen folgen nun!
Router1#! Durchgang 1 startet
Router1#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!