我正在使用paramiko-expect将命令发送到服务器。除非在返回的提示符中有分页选项,否则它按预期工作。 在这种情况下,输出文本缺少每个新页面命令的输出中的第一个字符,有时会挂起。放入buffer_size = 1是唯一可以解决它的问题。
那个解决方案太慢了,我还能做些什么吗?
interact = SSHClientInteraction(ssh, timeout=300, display=True, buffer_size=1)
output = ''
command = "file search activelog /platform/log/certm.log INFO"
not_done = True
interact.send(command)
while not_done:
interact_index = interact.expect(['.*Press <enter> for 1 line, <space> for one page, or <q> to quit', '.*Search completed'], timeout=300)
output += interact.current_output_clean
if interact_index == 0:
time.sleep(1)
interact.send(' ')
else:
not_done = False
print(output)
ssh.close()