Форум сайта python.su
0
Добрый день .
Буду очень благодарен если ктото обяснит такой момент:
Есть оборудование 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)
Офлайн
857
kyzma84каким образом он подключается по ssh ?
Есть оборудование mikrotik есть скрипт который подключается к этому оборудованию по ssh .
Офлайн
0
На убунте установлен питон и “from paramiko import SSHClient” .
Офлайн
857
>>> 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 >>>
Офлайн
0
Спасибо за ответ .
Я питон вижу только пару дней , да и не програмер вовсе .
Если не сложно можно поподробней вот об этом
The command's input and outputБыло бы прекрасно простой рабочий пример.
streams are returned as python C{file}-like objects representing
Офлайн
0
можно считать результат вывода команды и работать с ним, как со строкой
>>> 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'>
Офлайн
857
kyzma84C{file}-like objects
Было бы прекрасно простой рабочий пример.
>>> import sys >>> sys.stdin <open file '<stdin>', mode 'r' at 0xb7735020> >>> help(sys.stdin) >>>
Офлайн
0
Спасибо ! Попробую применить в своем скрипте.
Офлайн