A sessão do Paramiko atinge o tempo limite, mas eu preciso executar muitos comandos
Estou trabalhando em um script (python 2.7) que funciona com um dispositivo remoto executando o Cisco IOS, por isso preciso executar muitos comandos por meio do ssh. Poucos comandos não têm saída e alguns deles têm, e eu quero receber a saída. É algo como isto:
import paramiko
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self._ip, port=22, username=username, password=password
stdin, stdout, stderr = ssh.exec_command('command with no output')
stdin, stdout, stderr = ssh.exec_command('command with no output')
stdin, stdout, stderr = ssh.exec_command('command with output')
sh_ver = stdout.readlines()
A coisa éexec_command
Isso faz com que o canal seja fechado e não possa ser reutilizado, mas não é possível abrir um novo canal para executar outro comando, porque esta é uma sessão de comandos que, no final, preciso obter a saída.
Eu tentei executar os comandos dessa maneira também:
stdin, stdout, stderr = ssh.exec_command('''
command
command
command
''')
output = stdout.readlines()
mas assimoutput
está vazia. E mesmo que não funcione, preciso executar algumas verificações nooutput
e continue a sessão em que parei.
Então o que eu preciso? Uma maneira de gerenciar essa conexão ssh sem fechá-la ou iniciar uma nova e receber facilmente a saída do comando.
Agradecemos antecipadamente, Miri. :)