Backup eines Switches

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
dacki
User
Beiträge: 12
Registriert: Donnerstag 11. September 2014, 08:53

ok nun verzweifel ich doch langsam etwas daran entweder gibt der Switch gar nix zurück oder ich übersehe etwas ich habe nun das read_all raus genommen und trotzdem bleibt er an dieser stelle stehen zum schreien.
BlackJack

@dacki: Also mich wundert das nicht. Das auf das Du wartest wird sicher niemals gesendet, also kannst Du lange warten. ;-)
dacki
User
Beiträge: 12
Registriert: Donnerstag 11. September 2014, 08:53

aber es erscheint auf dem telnet schirm, also ist doch eine Ausgabe seitens des switches vorhanden oder verstehe ich das falsch
??
BlackJack

@dacki: Da erscheint ziemlich sicher nicht b'Enter s\n'. Dir ist schon klar was das \n da bedeutet‽
dacki
User
Beiträge: 12
Registriert: Donnerstag 11. September 2014, 08:53

so wie ich das verstanden habe ist das \n eine newline anweisung also sowas wie ein "Enter" auf der tastatur
BlackJack

@dacki: Genau. Und das wird der switch ziemlich sicher an der Stelle nicht senden. Oder ist da tatsächlich ein Zeilenumbruch nach dem 's' in der Ausgabe?
dacki
User
Beiträge: 12
Registriert: Donnerstag 11. September 2014, 08:53

nein das s gehört zur nächsten Zeile im gesamten heißt es "Enter source file name[]:" .

Ich weiß nicht warum er mir die suche oder auch abgleich der ausgegebenen Antwort an der stelle zerreißt.
BlackJack

@dacki: Ähm, dieses '\n' wird an der Stelle nicht gesendet, also darf das in Deiner Suche da ganz offensichtlich nicht stehen. In wie vielen und wie langen Teilstücken die Daten empfangen werden ist Wurst, das Zeichen ist trotzdem nicht an der Stelle.
dacki
User
Beiträge: 12
Registriert: Donnerstag 11. September 2014, 08:53

Ich habe nun mal etwas herumprobiert mit dieser auslesen Geschichte und habe sie Schluss endlich raus genommen. das script läuft durch aber leider bekomme ich keine anfrage vom switch an den tftp Server. Was die vollständige Eingabe dieser Daten bewirken sollte.

Gibt es eine art delay oder wait befehl vielleicht ist dem switch die Eingabe zu schnell.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

dacki: Keine Ahnung was Du jetzt wieder herumrätst. Nochmal zusammenfassend: es darf kein read_all vorkommen, und alle read_untils müssen exakt das enthalten, was der Server auch schickt. Das ist bei "Enter s\n" nicht der Fall. Was wird da geschickt? "Enter source file name []:" und zwar ohne Zeilenumbruch!

Das gibt:

Code: Alles auswählen

import telnetlib
 
HOST = "Geräte IP"
 
tn = telnetlib.Telnet(HOST)
tn.set_debuglevel(999)
tn.write(b'Mein User\n')
tn.read_until(b'Password: ')
tn.write(b'mein PW\n')
tn.write(b'en\n')
tn.write(b'copy flash tftp\n')
print(tn.read_until(b'Enter source filename []:'))
tn.write(b'default.cfg\n')
print(tn.read_until(b'Enter destination host name []:'))
tn.write(b'Switch\n')
print(tn.read_until(b'Enter destination host name []:'))
tn.write(b'Switch.cfg\n')
tn.write(b'exit\n')
Ob da wirklich zweimal 'Enter destination host name []:' abgefragt wird, bezweifle ich ja noch, aber da mußt Du halt nochmal schauen, was da genau geschickt wird!
Antworten