代码之家  ›  专栏  ›  技术社区  ›  Boris Pavlović

如何在Java上远程机器上运行shell脚本?

  •  1
  • Boris Pavlović  · 技术社区  · 15 年前

    我正在创建一个测试,它将对与Postgres数据库对话的应用程序执行一些压力测试。为了使它可复制,我想在每次运行时重新创建数据库。启动方法装饰 org.junit.Before 注释将删除数据库(如果存在),并从转储文件还原它。执行此表单shell/命令非常简单:

    psql -f db.out newdb
    

    或者沿着这些线。因为测试可能是在JVM上执行的,而JVM不在同一台主机上运行的机器上运行,所以我想知道是否可以从Java编程中调用远程机器上的Shell /批处理脚本。

    谢谢

    2 回复  |  直到 15 年前
        1
  •  4
  •   user7094    15 年前

    如果您知道机器的详细信息(主机名、登录名、密码),我现在唯一能想到的就是使用 Java SSH library 登录到该框并运行该命令。

    或者,您可以在本地计算机上编写一个脚本,在给定正确参数的情况下在远程计算机上运行该脚本。

    这是我能想到的最简单的方法!

        2
  •  2
  •   Aaron Digulla    15 年前

    如果设置SSH太复杂,您可以编写一个小的Java程序,该程序监听套接字上的连接,然后运行脚本。在Postgres服务器上安装它,并在测试用例中连接到它。

    也就是说,我建议在每台开发人员机器上安装Postgres的副本。这将使您的测试运行得更快,并且当两个开发人员同时运行测试时,您不会得到虚假错误。此外,您不会因为网络问题而出错,因为有人在服务器上进行维护,因为DeveloperX更改了DB模式等。