soluzione cross-platform per l'automazione sessioni telnet ncurses-tipo
-
20-09-2019 - |
Domanda
Sfondo
Una parte del mio lavoro in networking e telecomunicazioni coinvolge l'automazione sessioni telnet quando l'hardware legacy non offre soluzioni facili in altre interfacce. Molti vecchi pezzi di equipaggiamento sono accessibili solo tramite le porte artigianali (RS-232 porte seriali), SNMP o Telnet. A volte telnet è l'unico modo per accedere a informazioni specifiche, tuttavia telnet è concepito come un'interfaccia umana e quindi richiede screen scraping. Inoltre, v'è anche la questione di schermi raschiamento in cui solo le parti vengono aggiornate al fine di risparmiare larghezza di banda (vedi ncurses ). Nel mio lavoro ho usato ActiveState Aspettatevi e la biblioteca telnet Python.
Domanda
Quali lingue e le librerie sono in grado di automatizzare le sessioni telnet e hanno i seguenti requisiti:
- compatibile per grandi progetti (ad esempio Tcl non sembra in scala così come Python nella mia esperienza e sembra obsoleto)
- Cross Platform (ad esempio Pexpect non funziona su Windows e ActiveState Aspettarsi si comporta in modo diverso su più di Windows richiede DEP sulla più recente macchine per essere spenti)
- In grado di schermare le sessioni di raschiatura che ridipingono porzioni dello schermo (Simile al comportamento di ncurses nei programmi della riga di comando)
- Libero come in birra!
Una soluzione preferibile dovrebbe anche includere i seguenti:
- facilmente ridistribuibile (per esempio non richiede una certa enorme runtime per essere installato su una macchina).
- funziona anche per SSH, connessioni seriali, e altre interfacce a linea di comando.
Soluzione
Date un'occhiata al demo / Aspettatevi / term_expect nella distribuzione ActiveTcl. Emula un terminale cursore indirizzabile e permette di testare uscita in posizioni specifiche dello schermo. Controlla il codice di esempio screen-scraping alla fine del file.