Cross-Plattform-Lösung für die Automatisierung von ncurses-Typ Telnet-Sitzungen
-
20-09-2019 - |
Frage
Hintergrund
Ein Teil meiner Arbeit in Netzwerken und Telco beinhaltet Telnet-Sitzungen zu automatisieren, wenn Legacy-Hardware nicht einfache Lösungen in anderen Schnittstellen bietet. Viele ältere Teile der Ausrüstung können nur über Handwerk Ports (RS-232 serielle Ports), SNMP oder Telnet zugegriffen werden. Manchmal ist telnet die einzige Möglichkeit, den Zugriff auf bestimmte Informationen, aber telnet als menschliche Schnittstelle ausgelegt ist und somit erfordert Screen Scraping. Darüber hinaus gibt es auch die Frage der Schaben Bildschirme, in denen nur Teile, um aktualisiert werden um Bandbreite zu sparen (siehe ncurses ). In meiner Arbeit habe ich verwendet Active erwarten und die Python Telnet-Bibliothek.
Frage
Welche Sprachen und Bibliotheken der Lage sind, zu automatisieren Telnet-Sitzungen und haben folgende Anforderungen:
- Geeignet für große Projekte (z Tcl scheint nicht so gut wie maßstabs Python in meiner Erfahrung und scheint veraltet)
- Cross-Plattform (zB Pexpect funktioniert nicht auf Windows und Active Erwarten Sie verhält sich anders auf Windows- und erfordert DEP auf neueren Maschinen ausgeschaltet) werden
- Kann Screen Scrape-Sitzungen, die repaint Teile des Bildschirms (Ähnlich dem Verhalten von ncurses in Kommandozeilenprogramme)
- Frei wie in Bier!
Eine bevorzugte Lösung würde auch die folgende:
- leicht verteilbare (z Does nicht einige große Laufzeit erfordert auf einem Computer installiert werden.)
- Funktioniert auch für SSH, serielle Verbindungen und andere Befehlszeilenschnittstellen.
Lösung
Hier finden Sie aktuelle Demos / Expect / term_expect in der ActiveTcl Verteilung. Er emuliert eine Cursor-adressierbaren Endgerät und ermöglicht es Ihnen, Testausgang an bestimmten Bildschirmpositionen. Schauen Sie sich das Beispiel Screen-Scraping-Code am Ende der Datei.