Python: SSH в устройство Cisco и запуск команд show

Я прочитал этот пост и изучил Exscript, paramiko, Fabric и pxssh, и я все еще потерял постоянную сессию ssh для маршрутизатора Cisco . Я новичок в скриптах python.

Я пытаюсь написать сценарий на Python, который будет SSH в устройство Cisco, запустить «show version», отобразить результаты в блокноте, а затем завершить скрипт.

Я могу заставить это работать с командами show, которые не требуют от пользователя взаимодействия с устройством. Например:

from Exscript.util.interact import read_login from Exscript.protocols import SSH2 account = read_login() conn = SSH2() conn.connect('192.168.1.11') conn.login(account) conn.execute('show ip route') print conn.response conn.send('exit\r') conn.close() 

В приведенном выше скрипте будут отображаться результаты «show ip route».

Если я попробую conn.execute ('show version'), сценарий истечет, потому что устройство Cisco ожидает, что пользователь нажмет пробел, чтобы продолжить, нажмите «вернуться», чтобы отобразить следующую строку или любую клавишу, чтобы вернуться в командную строку.

Как я могу выполнить команду show version, дважды нажать пробел, чтобы отобразить весь вывод команды show version, а затем напечатать ее в python?

Спасибо!!!!

3 Solutions collect form web for “Python: SSH в устройство Cisco и запуск команд show”

Попробуйте выполнить terminal length 0 перед запуском show version . Например:

 from Exscript.util.interact import read_login from Exscript.protocols import SSH2 account = read_login() conn = SSH2() conn.connect('192.168.1.11') conn.login(account) conn.execute('terminal length 0') conn.execute('show version') print conn.response conn.send('exit\r') conn.close() 

Из клиентских терминалов Cisco: http://www.cisco.com/en/US/docs/ios/12_1/configfun/command/reference/frd1003.html#wp1019281

Сначала выполнить

 terminal length 0 

для отключения пейджинга.

Я просто спросил то же самое, и приведенный ниже код будет запущен из списка и получить информацию, которую вы запрашиваете.

 from __future__ import print_function from netmiko import ConnectHandler import sys import time import select import paramiko import re fd = open(r'C:\NewdayTest.txt','w') # Where you want the file to save to. old_stdout = sys.stdout sys.stdout = fd platform = 'cisco_ios' username = 'username' # edit to reflect password = 'password' # edit to reflect ip_add_file = open(r'C:\IPAddressList.txt','r') # a simple list of IP addresses you want to connect to each one on a new line for host in ip_add_file: host = host.strip() device = ConnectHandler(device_type=platform, ip=host, username=username, password=password) output = device.send_command('terminal length 0') output = device.send_command('enable') #Editable to be what ever is needed print('##############################################################\n') print('...................CISCO COMMAND SHOW RUN OUTPUT......................\n') output = device.send_command('sh run') print(output) print('##############################################################\n') print('...................CISCO COMMAND SHOW IP INT BR OUTPUT......................\n') output = device.send_command('sh ip int br') print(output) print('##############################################################\n') fd.close() 
  • Использовать SSH-туннель, чтобы сервер Django считал, что он работает внутри AWS?
  • Использование matplotlib на безголовом сервере Ubuntu 14.04
  • paramiko и python ssh
  • ImportError: нет модуля с именем pxssh
  • Как включить закрытый ключ в paramiko после извлечения из строки?
  • Почему Pariko поднимает EOFError (), когда объект SFTP хранится в словаре?
  • Удаленное выполнение программы с помощью запуска xterm с использованием ssh-библиотеки paramiko python
  • Динамические хосты и параллельные задачи с библиотекой Fabric
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.