Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2012 14:43:00

kyzma84
От:
Зарегистрирован: 2012-03-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

Добрый день .
Буду очень благодарен если ктото обяснит такой момент:
Есть оборудование mikrotik есть скрипт который подключается к этому оборудованию по ssh .
Если я с помошью скрипта выполняю на этом оборудовании команду print например пользователей или интерфейсов , могу ли я обработать вывод команды print для вставки в следующию команду . Например “system identity print” выводит имя оборудования могу ли я обработать вывод этой команды и вставить в следующию команду.
Пример:
Смотрим имя устройства
NAME = system identity print
ssh.exec_command(NAME)
Создаем бекап с именем оборудования.
CreateLocalBckp = “system backup save name=” + str(name) + “.backup”
ssh.exec_command(CreateLocalBckp)



Офлайн

#2 Май 17, 2012 04:40:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

kyzma84
Есть оборудование mikrotik есть скрипт который подключается к этому оборудованию по ssh .
каким образом он подключается по ssh ?



Офлайн

#3 Май 17, 2012 10:09:27

kyzma84
От:
Зарегистрирован: 2012-03-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

На убунте установлен питон и “from paramiko import SSHClient” .



Офлайн

#4 Май 18, 2012 02:57:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

>>> import paramiko
>>> print paramiko.SSHClient.__doc__
    A high-level representation of a session with an SSH server.  This class
    wraps L{Transport}, L{Channel}, and L{SFTPClient} to take care of most
    aspects of authenticating and opening channels.  A typical use case is::
        client = SSHClient()
        client.load_system_host_keys()
        client.connect('ssh.example.com')
        stdin, stdout, stderr = client.exec_command('ls -l')
    You may pass in explicit overrides for authentication and server host key
    checking.  The default mechanism is to try to use local key files or an
    SSH agent (if one is running).
    @since: 1.6
    
>>> 

>>> print paramiko.SSHClient.exec_command.__doc__
        Execute a command on the SSH server.  A new L{Channel} is opened and
        the requested command is executed.  The command's input and output
        streams are returned as python C{file}-like objects representing
        stdin, stdout, and stderr.
        @param command: the command to execute
        @type command: str
        @param bufsize: interpreted the same way as by the built-in C{file()} function in python
        @type bufsize: int
        @return: the stdin, stdout, and stderr of the executing command
        @rtype: tuple(L{ChannelFile}, L{ChannelFile}, L{ChannelFile})
        @raise SSHException: if the server fails to execute the command
        
>>>



Офлайн

#5 Май 18, 2012 16:24:57

kyzma84
От:
Зарегистрирован: 2012-03-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

Спасибо за ответ .
Я питон вижу только пару дней , да и не програмер вовсе .
Если не сложно можно поподробней вот об этом

The command's input and output
streams are returned as python C{file}-like objects representing
Было бы прекрасно простой рабочий пример.



Офлайн

#6 Май 18, 2012 17:25:14

Viktors
От:
Зарегистрирован: 2011-10-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

можно считать результат вывода команды и работать с ним, как со строкой

>>> stdin, stdout, stderr = ssh.exec_command("uptime")
>>> data = stdout.read() + stderr.read()
>>> data
' 14:19:35 up 3 days,  9:49,  0 users,  load average: 0.17, 0.29, 0.27\n'
>>> type(data)
<type 'str'>



Офлайн

#7 Май 19, 2012 02:49:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

kyzma84
Было бы прекрасно простой рабочий пример.
C{file}-like objects
эти фигурные скобки, похоже, нужны для раскрашивания текста
читай как file-like objects

нет ssh сервера
возвращается кортеж из трёх файловых объектов
>>> import sys
>>> sys.stdin
<open file '<stdin>', mode 'r' at 0xb7735020>
>>> help(sys.stdin)
>>>
там посмотришь методы



Офлайн

#8 Май 19, 2012 15:27:42

kyzma84
От:
Зарегистрирован: 2012-03-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение по SSH и команда print

Спасибо ! Попробую применить в своем скрипте.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version