Кросс-платформенное решение для автоматизации работы с ncurses-тип сеансах telnet


Фон

Часть моей работы в области сетей и телекоммуникаций включает автоматизацию сеансов telnet, когда устаревшее оборудование не предлагает простых решений в других интерфейсах. Многие старые части оборудования могут быть доступны только через порты корабля (последовательные порты RS-232), SNMP или telnet. Иногда telnet является единственным способом доступа к определенной информации, однако telnet спроектирован как человеческий интерфейс и поэтому требует очистки экрана. Кроме того, существует также проблема соскоба экраны, где обновляются только части для экономии полосы пропускания (см. ncurses ). В своей работе я использовал ActiveState Expect и библиотеку Python telnet.

Вопрос

Какие языки и библиотеки способны автоматизировать сеансы telnet и имеют следующие требования:

  • подходит для крупных проектов (например, Tcl не кажется, что масштабируется так же хорошо, как Python по моему опыту и кажется устаревшим)
  • кросс-платформенный (например, pexpect делает не работает на Windows и Activestate Ожидать ведет себя по-разному на Windows plus требует DEP на более новой версии машины, которые должны быть выключены)
  • возможность экранировать сеансы очистки, которые перекрашивают части экрана (аналогично поведению ncurses в программах командной строки)
  • бесплатно, как в пиве!

Предпочтительным решением было бы также следующее:

  • легко перераспределяемый (например, не делает требуется, чтобы на компьютере была установлена огромная среда выполнения. машина.)
  • также работает для SSH, последовательных соединений и других интерфейсов командной строки.
1 3

1 ответ:

Взгляните на demos / Expect/term_expect в дистрибутиве ActiveTcl. Он эмулирует терминал с адресом курсора и позволяет тестировать вывод в определенных местах экрана. Проверьте пример кода очистки экрана в конце файла.