Backup eines Switches
@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: Ä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.
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.
Gibt es eine art delay oder wait befehl vielleicht ist dem switch die Eingabe zu schnell.
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:
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!
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')