Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒Python⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Python: SSH к CISCO с помощью Paramiko


Установить paramiko можно с помощью например pip, у меня в заметках можно найти по нему статьи

Сам скрипт элементарен:

(Важное замечание!!! В конце любой команды пример: chan.send('ping 8.8.8.8 ') в конце обязательно прибавлять \n)

import paramiko 
import time

host = '192.168.0.1'
user = 'User'
pass1 = 'Pass'
port = 22

#simple ssh connect sample
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, username=user, password=pass1, port=port)

chan = client.invoke_shell()
time.sleep(1)
chan.send('ping 8.8.8.8 \n')
time.sleep(3)
chan.send('ping 8.8.8.8 \n')
time.sleep(3)

output = chan.recv(99999)
print output

client.close()

chan = client.invoke_shell() нужен чтоб сессия не отваливалась

Живой пример с перебором оборудования CISCO

import paramiko 
import time

user = 'User'
pass1 = 'Pass'
port = 22

cisco = ['192.168.1.1', '192.168.1.2', '192.168.1.3']

for host in cisco:
    print '------Start---'+host+'------'

    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=host, username=user, password=pass1, port=port)

    chan = client.invoke_shell()
    time.sleep(2)

    chan.send('conf term\n ')
    time.sleep(2)
    #Включение
    chan.send('logging on\n ')
    time.sleep(2)
    #Для вывода в виртуальный терминал (включить terminal monitor)
    chan.send('logging monitor\n ')
    time.sleep(2)
    #Буфер по умолчанию
    chan.send('logging buffered 4096 \n')
    time.sleep(2)
    #Ограничение числа выводимых сообщений
    chan.send('logging rate-limit 30 \n')
    time.sleep(2)
    #Нумерация выводимых сообщений
    chan.send('service sequence-numbers\n ')
    time.sleep(2)
    #Даем указание выводить локальное время
    chan.send('service timestamps debug datetime localtime\n ')
    time.sleep(2)
    chan.send('service timestamps log datetime localtime\n ')
    time.sleep(2)
    #Отправка логов на сервер
    chan.send('no logging 192.168.1.100 ')
    time.sleep(2)
    #Глубина отправляемых логов
    chan.send('logging trap warnings \n')
    time.sleep(2)
    chan.send('end\n ')
    time.sleep(2)
    chan.send('wr\n ')
    time.sleep(6)

    output = chan.recv(99999)
    print output

    client.close()

    print '------End-----'+host+'------'


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru