Djam36
@Djam36

Python, как осуществить запись в переменую вывода системной программы?

Добрый всем вечер, столкнулся с такой проблемой
Есть сервера, доступные по ssh, нужно зайти на каждый сервер выполнить определенный список команд типа
top
date
Записать все это в переменную, проделать это на всех серверах, а потом записать результат выполнения команд на каждом сервере в файл(который будет хранится на сервере на котором запускали скрипт).
Я начал делать все через Paramiko.
Вот вопросы, как можно это реализовать? если можно пример кода.
Допустим зашли на сервер назовем его тест > выполнили команды > записали в переменную вывод этих команд ( или переменные) > закрыли соединение> сделали тоже самое для остальных серверов > переменные которые получили записали в файл > например log.txt
Спасибо большое за помощь
  • Вопрос задан
  • 3792 просмотра
Решения вопроса 1
@s1dney
Не совсем понял, а в чем вопрос? На станице проекта первый пример из документации:
import paramiko, base64
key = paramiko.RSAKey(data=base64.decodestring('AAA...'))
client = paramiko.SSHClient()
client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key)
client.connect('ssh.example.com', username='strongbad', password='thecheat')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout: #stdout в данном случае и является искомой переменной
    print '... ' + line.strip('\n')
client.close()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mututunus
@mututunus
Backend developer (Python, Golang)
Для такой задачи отлично подходит Fabric.
Ответ написан
Комментировать
@zedxxx
Почитайте хабр: habrahabr.ru/post/150047 может это вам поможет разобраться как работать с этим модулем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы