在我的Python代码中,我需要从host1执行命令。但是只能从host2到达host1

时间:2017-04-19 09:28:05

标签: python ssh

我必须编写一个python代码来从客户端执行一些命令。 python脚本需要在client1机器中。

该命令必须在client3中执行。 但client3无法直接从client1访问。我们需要首先ssh到" client2"服务器,然后ssh到client3。

有出路吗?

1 个答案:

答案 0 :(得分:1)

I Haven并没有亲自管理,但你听起来好像可以使用以下答案:How to execute a process remotely using python

以下是答案给出的例子:

case class Promotable[R,T](promote: R => T)

object Promotable {
  implicit val intToFloat = Promotable[Int,Float](_.toFloat)
  implicit val floatToDouble = Promotable[Float,Double](_.toDouble)
  implicit val intToDouble = Promotable[Int,Double](_.toDouble)

  implicit def identityInst[A] = Promotable[A,A](identity)
}As a "small" solution you could write a typeclass 

def weightedAverage[S,VS](values: Seq[(S,VS)])(implicit p: Promotable[VS,S]) = ???

使用子进程库,您可以执行SSH,然后使用您的python代码从客户端1在import subprocess ret = subprocess.call(["ssh", "user@host", "program"]); # or, with stderr: prog = subprocess.Popen(["ssh", "user@host", "program"], stderr=subprocess.PIPE) errdata = prog.communicate()[1] 机器上执行命令。

希望它有所帮助!