Pergunta

Fundo

Parte do meu trabalho em rede e telecomunicações envolve automatizar sessões de telnet quando o hardware herdado não oferece soluções fáceis em outras interfaces. Muitas peças de equipamento mais antigas só podem ser acessadas através de portas de artesanato (portas seriais RS-232), SNMP ou telnet. Às vezes, a Telnet é a única maneira de acessar informações específicas, no entanto, a Telnet é projetada como uma interface humana e, portanto, requer raspagem na tela. Além disso, há também a questão de raspar telas onde apenas partes são atualizadas para salvar a largura de banda (ver ncurses). No meu trabalho, usei o Activestate Werend e a Python Telnet Library.

Pergunta

Quais idiomas e bibliotecas são capazes de automatizar as sessões da Telnet e ter os seguintes requisitos:

  • Adequado para grandes projetos (por exemplo, TCL não parece escalar tão bem quanto Python na minha experiência e parece desatualizado)
  • Plataforma cruzada (por exemplo Pexpect não funciona no Windows e ActiveState Espera se comporta de maneira diferente no Windows Além disso, requer que as máquinas mais recentes sejam desligadas)
  • Capaz de rastrear sessões de raspar que repintar as partes da tela (semelhante ao comportamento dos NCurses nos programas da linha de comando)
  • Grátis como na cerveja!

Uma solução preferível também incluiria o seguinte:

  • Redistribuível facilmente (por exemplo, não requer um grande tempo de execução para ser instalado em uma máquina.)
  • Também funciona para SSH, conexões seriais e outras interfaces da linha de comando.
Foi útil?

Solução

Dê uma olhada no DEMOS/espera/termin_expect na distribuição do ActiveTCL. Ele emula um terminal adjunto do cursor e permite testar a saída em locais específicos da tela. Confira o exemplo de código de tela de tela no final do arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top