1

我对使用 Maven 使用一些 ssh exec 插件在远程服务器上执行命令进行了一些研究。

让我感到震惊的是我需要运行一个命令来启动一些菜单驱动的程序来停止服务器然后重新启动它。

我基本上必须按顺序执行以下任务:

  1. 使用 SSH 连接到远程服务器
  2. 使用用户名/密码登录
  3. 将目录更改为特定位置
  4. 在该位置运行命令以启动命令行菜单驱动程序(即“ ./control”)
  5. 向该菜单驱动程序输入两个命令
  6. 断开

这两个命令只是代表它在控制台上打印的菜单中的选择的数字,例如:

Enter the number of the server you wish to stop:
[1] server1
[2] server2
[3] server3

例如,我会输入“2”。这可能吗?

4

1 回答 1

0

一种可能的解决方案是在接受服务器编号作为参数的远程服务器上编写 Perl 脚本。

然后,您可以使用 Perl 的Expect.pm库在control程序提示输入时将此参数提供给您的程序。

然后,这将您的 Maven 任务简化为在远程服务器上执行脚本,由于您的研究,您现在可能对此感到满意。

(如果您以前没有使用过它,Perl 的 Expect 库正是为这个用例而设计的——自动为交互式命令行程序提供输入。)

于 2013-01-17T08:21:40.773 回答