Найти - Пользователи
Полная версия: Подключение по SSH и команда print
Начало » Python для новичков » Подключение по SSH и команда print
1
kyzma84
Добрый день .
Буду очень благодарен если ктото обяснит такой момент:
Есть оборудование 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)

py.user.next
kyzma84
Есть оборудование mikrotik есть скрипт который подключается к этому оборудованию по ssh .
каким образом он подключается по ssh ?
kyzma84
На убунте установлен питон и “from paramiko import SSHClient” .

py.user.next
>>> 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
        
>>>
kyzma84
Спасибо за ответ .
Я питон вижу только пару дней , да и не програмер вовсе .
Если не сложно можно поподробней вот об этом
The command's input and output
streams are returned as python C{file}-like objects representing
Было бы прекрасно простой рабочий пример.
Viktors
можно считать результат вывода команды и работать с ним, как со строкой

>>> 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'>
py.user.next
kyzma84
Было бы прекрасно простой рабочий пример.
C{file}-like objects
эти фигурные скобки, похоже, нужны для раскрашивания текста
читай как file-like objects

нет ssh сервера
возвращается кортеж из трёх файловых объектов
>>> import sys
>>> sys.stdin
<open file '<stdin>', mode 'r' at 0xb7735020>
>>> help(sys.stdin)
>>>
там посмотришь методы
kyzma84
Спасибо ! Попробую применить в своем скрипте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB