我必须编写一个python代码来从客户端执行一些命令。 python脚本需要在client1机器中。
该命令必须在client3中执行。 但client3无法直接从client1访问。我们需要首先ssh到" client2"服务器,然后ssh到client3。
有出路吗?
答案 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]
机器上执行命令。
希望它有所帮助!