Backup eines Switches

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
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: 17741
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