我正在尝试使用subprocess.call函数调用remote(ssh)命令。
import shlex
from subprocess import call
cmd1='ssh user@example.com mkdir temp'
cmd2='scp test.txt user@example.com:temp'
call(shlex.split(cmd1))
call(shlex.split(cmd2))
当我调用上面的内容时,mkdir似乎没有执行 - 虽然subprocess.call的文档说它在返回之前等待执行。各个ssh调用的延迟大约是0.5秒。它似乎在千兆局域网上运行良好,其中延迟几乎为零。
然而,当调用这样的调用似乎工作正常:
call(shlex.split(cmd1)) & call(shlex.split(cmd2))
第一种方法有什么问题?
谢谢你, Miliana
答案 0 :(得分:0)
看起来你没有在第一种方法中寻找调用的结果。
if call(shlex.split(cmd1))!=0:
call(shlex.split(cmd2))
答案 1 :(得分:0)
你有问题的版本总是对我有用。我认为这是一个网络问题,特别是因为你指出它在千兆局域网中工作。