Кроссплатформенное решение для автоматизации telnet-сессий типа ncurses
-
20-09-2019 - |
Вопрос
Фон
Часть моей работы в сфере сетевых технологий и телекоммуникаций связана с автоматизацией сеансов telnet, когда устаревшее оборудование не предлагает простых решений в других интерфейсах.Доступ ко многим старым компонентам оборудования возможен только через порты (последовательные порты RS-232), SNMP или telnet.Иногда telnet является единственным способом доступа к определенной информации, однако telnet спроектирован как человеческий интерфейс и поэтому требует очистки экрана.Кроме того, существует проблема очистки экранов, на которых обновляются только части, чтобы сэкономить полосу пропускания (см. ncurses).В своей работе я использовал ActiveState Expect и библиотеку telnet Python.
Вопрос
Какие языки и библиотеки могут автоматизировать сеансы telnet и предъявляют следующие требования:
- Подходит для крупных проектов (напр.Похоже, что TCL не масштабируется, а также Python в моем опыте и кажется устаревшим)
- Кроссплатформенность (например. Pexpect не работает в Windows и ActiveState ожидайте, что ведет себя по -разному в Windows Плюс требует от выключения DEP на более новых машинах)
- Способен скринировать сеансы, перекрашивающие части экрана (аналогично поведению Ncurses в программах командной строки)
- Бесплатно как пиво!
Предпочтительное решение также будет включать следующее:
- Легко распространяемый (например.Не требует огромного времени выполнения, чтобы быть установленным на машине.)
- Также работает для SSH, последовательных соединений и других интерфейсов командной строки.
Решение
Взгляните на demos/Expect/term_expect в дистрибутиве ActiveTcl.Он эмулирует терминал, адресуемый курсором, и позволяет тестировать вывод в определенных местах экрана.Посмотрите пример кода очистки экрана в конце файла.