如何在sbt脚本中运行远程ssh命令?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在sbt脚本中运行远程ssh命令?相关的知识,希望对你有一定的参考价值。

我想在远程计算机上部署并自动运行脚本。

但是,我不知道如何发出远程命令。

我已经尝试了几件事和插件,但这些东西似乎都没有用。

有办法吗?

val deployAndRunTask = TaskKey[Unit]("deploy-run", "Deploy and run application.")

deployAndRunTask := {

  // Deploy .jar file
  val _ = deployTask.value

  println("Running the script ..")

}
答案

这是一个工作示例,您可以将其保存在SBT项目顶级目录中的test.sbt中。 shellRun方法运行任意命令。我使用shellRun运行ssh,连接到本地计算机,并列出我的主目录中的文件。

import scala.sys.process.Process

val deployAndRunTask = TaskKey[Unit]("deploy-and-run-task", "Short example")

deployAndRunTask := {
  def shellRun(command: String*) = Process(command.toSeq).!!.trim

  val result = shellRun("/usr/bin/ssh", "localhost", "ls")
  println(result)
}

键入以下命令运行它:

sbt deployAndRunTask

以上是关于如何在sbt脚本中运行远程ssh命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 bash 脚本在远程机器上运行命令?

如何通过 SSH 远程自动运行命令到并行的多个服务器?

如何使用SSH在远程计算机上运行shell脚本?

如何使用 ssh 在后台运行命令并分离会话

编写一个shell脚本ssh到远程机器并执行命令

利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集