Мне нужно эмулировать следующее с помощью скрипта, который вызывается веб-службой, запущенной с сервера Linux:

  • Доступ к удаленному серверу AIX через SSH
  • Войдите в экземпляр Intersystems Cache (если это незнакомо, представьте, что мы загружаем интерактивную среду Python или Ruby [irb])
  • Выполнить команды
  • Выполнять больше команд в зависимости от вывода предыдущих команд
  • Записывать все входные и выходные данные из этой среды

Это довольно просто сделать в C # с библиотекой SSH.NET. Откройте shellstream для удаленного хоста, подключите StreamReader и StreamWriter, затем отправьте входные данные в SSH-соединение через StreamWriter и прочитайте выходные данные из него через StreamReader.

Как мне это сделать на сервере Linux с ssh? Я экспериментирую с экраном, но кажется, что он больше предназначен для интерактивного использования человеком, чем для сценариев, и мне интересно, не лаю ли я не то дерево.

У меня нет контроля над тем, что установлено на сервере AIX. Я мог бы установить вещи там, но без гарантий.

Гораздо позже редактировать: возможные решения включают pexpect/pxssh (Python), paramiko (также Python)

1 ответ1

0

Да, экран не так. Я не знаю о cache но вы можете написать скрипт для него или вам нужна интерактивная оболочка? Если вы можете написать сценарий и сохранить его на компьютере AIX, вы сможете

ssh user@aix.server.com /path/to/cache_script

Другой подход заключается в использовании expect который также доступен в AIX, но я не могу дать вам более подробную информацию, не зная команд, которые вам нужно выполнить. В любом случае, expect позволяет отправлять команды и реагировать на вывод, взаимодействуя с интерактивной оболочкой неинтерактивным способом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .