通过 SSH 从后台脚本与远程“shell”进行交互

通过 SSH 从后台脚本与远程“shell”进行交互

我需要使用从 Linux 服务器运行的 Web 服务调用的脚本来模拟以下内容:

  • 通过 SSH 访问远程 AIX 服务器
  • 登录 Intersystems Cache 实例(如果您不熟悉,请假装我们正在加载交互式 Python 或 Ruby [irb] 环境)
  • 执行命令
  • 根据前面命令的输出执行更多命令
  • 记录此环境的所有输入和输出

使用 SSH.NET 库在 C# 中完成此操作相当简单。打开到远程主机的 shellstream,附加 StreamReader 和 StreamWriter,然后通过 StreamWriter 将输入发送到 SSH 连接并通过 StreamReader 从中读取输出。

我应该如何在 Linux 服务器上使用 ssh 进行此操作?我正在尝试使用屏幕,但它似乎更适合人机交互使用,而不是脚本,我想知道我是否选错了方向。

我无法控制 AIX 服务器上安装的内容。我可能能够在那里安装一些东西,但不保证。

后来编辑:可能的解决方案包括 pexpect/pxssh (Python)、paramiko (也是 Python)

答案1

是的,屏幕不是办法。我不知道,cache但你能为它写一个脚本吗,或者你需要交互式 shell?如果你能编写一个脚本并将其保存在 AIX 机器上,那么你应该能够做到

ssh [email protected] /path/to/cache_script

另一种方法是使用expect它也可以在 AIX 上使用,但如果不知道您需要运行的命令,我就无法为您提供更多详细信息。无论如何,它expect允许您发送命令并响应输出,以非交互方式与交互式 shell 进行交互。

相关内容