我在Paramiko中遇到性能问题,我做了很多测试,但不知道如何解决。我有一个脚本,它可以对外部SSH服务器运行许多命令,它可以正常工作,但是由于time.sleep(1)太长了。因此,在发送每个命令后的1秒钟内,脚本不执行任何操作。
目前,它发送了17条命令,因此用户正在等待类似23s的命令。根据命令,脚本不需要等待1s,因此我想知道脚本何时结束以从服务器接收数据,然后直接发送新命令。
我试图检入Channel.recv或BufferPipe,但是没有用。
您将在下面找到我如何发送命令:
for command in commands:
try:
chan.send(command)
while chan.recv_ready() is False:
time.sleep(1)
output += chan.recv(2048)
最佳答案
我用该代码解决了我的问题:
for command in list_commands:
try:
chan.send(command)
while chan.recv_ready() is False:
time.sleep(0)
while chan.recv_ready():
output += chan.recv(2048)
time.sleep(0.2)
我赢得了16条命令的13分,这看起来很值得。
关于python - 如何提高paramiko的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26991636/