使用Maven在远程服务器上执行菜单驱动的命令

时间:2013-01-17 02:50:54

标签: unix maven ssh

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

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

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

  1. 使用SSH连接到远程服务器
  2. 使用用户名/密码
  3. 登录
  4. 将目录更改为特定位置
  5. 在该位置运行命令以启动命令行菜单驱动程序(即“./control”)
  6. 为该菜单驱动程序输入两个命令
  7. 断开
  8. 这两个命令只是数字,表示它在控制台上打印的菜单中的选项,如:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

这样就可以简化你的Maven任务,在远程服务器上执行脚本,这可能是你现在感谢你的研究。

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