我开始学习twisted.conch,以便在SSH上自动执行一些任务。
I tried to modify样本sshclient.py从http://www.devshed.com/c/a/Python/SSH-with-Twisted/4/。它在登录后运行1条命令,并打印捕获的输出。
What I wanted to do是运行一系列命令,并可能根据输出来决定该做什么。
twisted.conch.ssh.channel.SSHChannel似乎总是在运行命令(如df -h)之后关闭自己。这个例子将是继sendRequest之后的channelOpen。然后,无论我做了什么,频道总是在dataReceived之后关闭。
我想知道这是否是服务器在命令之后发送EOF造成的。因此这条通道必须关闭?我应该为多个命令打开多个通道吗?
Another problem is那些交互命令(如rm -i somefile)。似乎是因为服务器没有发送EOF,所以SSHChannel.dataReceived从未被调用过。在这种情况下,我如何设法捕获输出,以及如何返回响应?
发布于 2010-11-30 06:43:34
我应该为多个命令打开多个通道吗?
是啊。这就是SSH的工作方式。
SSHChannel.dataReceived从未被调用
这听起来不像是该发生的事。也许您可以包含一个复制行为的最小示例。
https://stackoverflow.com/questions/4310513
复制相似问题