8

我必须在大约需要 10 分钟的远程机器上完成一项工作(使用我的 Web 服务器)。

我在 python 中使用了pxssh模块,但它给了我“超时错误”(非阻塞)。

现在,我正在使用paramiko,但它一给出指令就会回来。

我希望网络服务器等到工作完成。是否有任何可用的 python SSH 模块。

或者

pxssh我们可以通过更改or的任何配置设置来达到同样的效果paramiko吗?

4

1 回答 1

9

您可以使用recv_exit_statusChannel 上的方法等待命令完成:

recv_exit_status(自我)

从服务器上的进程返回退出状态。这对于检索 exec_command 的结果非常有用。如果命令还没有完成,这个方法会一直等到它完成,或者直到通道关闭。如果服务器没有提供退出状态,则返回 -1。

例如:

ssh = paramiko.SSHClient()
ssh.connect(remote, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("some command")
exit_status = ssh_stdout.channel.recv_exit_status()
于 2011-07-04T10:13:52.573 回答