J'essaie d'écrire un script simple pour connecter le commutateur Cisco C2960.Je n'arrive pas à comprendre comment réutiliser la session ssh pour l'exécuter plus de deux commandes.Paramiko: impossible de réutiliser la session ssh lors de la connexion au commutateur Cisco C2960
Il y a une discussion sur le SO,
Persistent ssh session to Cisco router
mais aucune des réponses fournies, il peut résoudre mon problème.
Voici mon code:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('xxx',username='xxx',password='xxx',allow_agent=False)
stdin, stdout, stderr = ssh.exec_command('show version')
stdin, stdout, stderr = ssh.exec_command('sh mac brief')
Résultats dans:
Traceback (most recent call last):
File "./test.py", line 10, in <module>
stdin, stdout, stderr = ssh.exec_command('sh mac brief')
File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 363, in exec_command
chan = self._transport.open_session()
File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 658, in open_session
return self.open_channel('session')
File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 746, in open_channel
raise e
EOFError
Je dois utiliser 'pexpect' au lieu de' paramiko' :-(Et BTW quelle est l'option pour activer plusieurs commandes pour IOS? merci :-) – yegle
Non, vous pouvez utiliser 'pexpect' avec paramiko pour écrire un script avec une invite interactive. Je ne travaille pas avec IOS moi-même, je devine juste qu'il peut y avoir une option pour activer la commande multiple. – JimB